Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
521 KB
Nội dung
Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TPHCM KHOA: KHOA HỌC MÁY TÍNH CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT BÀI THU HOẠCH MƠN: TỐN CHO KHOA HỌC MÁY TÍNH Đề tài: TÌM HIỂU CHỮ KÝ ĐIỆN TỬ- XÂY DỰNG ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ GVHD : PGS.TS ĐỖ VĂN NHƠN HVTH : Phan Trọng Nghĩa MSHV: CH1301042 TP HCM, Tháng 12 năm 2013 HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn LỜI MỞ ĐẦU Hiện nay, việc đảm bảo an tồn thơng tin, tránh nguy bị thay đổi, chép mát liệu ứng dụng mạng làvấn đề xúc, nhiều người quan tâm Trên thực tế, chữ ký điện tử (Digital Signature) ứng dụng rộng rãi ứng dụng mạng 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 Tuy nhiên, xây dựng ứng dụng, nhà phát triển thường tập trung xây dựng chức hệ thống, quan tâm đến vấn đề an tồn trình truyền tin Trên sở này, em xin trình bày sở lý thuyết mã hóa, thuật tốn băm MD5, thuật giải RSA chữ ký điện tử Từ đó, xây dựng ứng dụng nhỏ mơ quy trình tạo chữ ký xác nhận chữ ký Em xin chân thành cảm ơn PGS.TS Đỗ Văn Nhơn tận tình hướng dẫn truyền đạt kiến thức hữu ích giúp em hoàn thành thu hoạch Tp HCM, tháng 12 năm 2013 Phan Trọng Nghĩa HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn PHỤ LỤC HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn NỘI DUNG A ĐẶT VẤN ĐỀ Ngày nay, ứng dụng công nghệ thông tin ngày thiếu thành phần xã hội, kinh tế, trị, quân Một lĩnh vực quan trọng mà công nghệ thông tin ứng dụng mạnh mẽ khơng thể thiếu lĩnh vực truyền thông Rất nhiều thông tin liên quan đến cơng việc hàng ngày máy vi tính quản lý truyền gửi hệ thống mạng, kéo theo vấn đề xác thực nguồn thơng tin nhận Và vấn đề đặt làm để xác thực cách xác nguồn thông tin nhận người, máy chủ hay thực thể gửi tin hệ thống mạng? A D B INTERNET Mô hình trao đổi thơng tin qua mạng INTERNET Ví dụ: A gửi thông tin điện tử cho D, giả sử B “giả mạo” A gửi thông tin cho D, người C môi trường truyền bắt sửa đổi thông tin A gửi sau thơng tin gửi lại cho D Vậy thơng tin D nhận khơng xác người nhận D xác thực thơng tin người A gửi, hay B gửi, hay người khác gửi HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn Vấn đề đặt người D sau nhận tin phải xác thực thông tin đối tượng cụ thể gửi thơng tin không bị tiết lộ bị không thay đổi môi trường truyền thông Bài thu hoạch đề cập đến sở lý thuyết hàm băm MD5, thuật tốn mã hóa RSA, chữ ký điện tử ứng dụng chữ ký điện tử B CƠ SỞ LÝ THUYẾT I Tổng quan chứng thực an tồn thơng tin - Chúng ta sống thời đại bùng nổ thông tin Nhu cầu trao đổi thông tin phương tiện truyền đưa thơng tin phát triển cách nhanh chóng Và với phát triển đó, địi hỏi bảo vệ tính bí mật chứng thực nguồn thơng tin ngày to lớn có tính phổ biến Có nhiều tốn khác u cầu an tồn thơng tin tùy theo tình khác - Ví dụ thực tế, số tốn chung mà ta thường gặp toán sau đây: o Bảo mật: Giữ thơng tin bí mật tất người, trừ người có thẩm quyền đọc, biết thơng tin o Tồn vẹn thơng tin: Bảo đảm thơng tin khơng bị thay đổi hay xun tạc kẻ khơng có thẩm quyền phương tiện không phép o Nhận thực thực thể: Xác nhận danh tính thực thể, chẳng hạn người, máy tính cuối mạng, thẻ tín dụng, o Nhận thực thông báo: Xác nhận nguồn gốc thông báo gửi đến o Chữ ký: Một cách để gắn kết thông tin với thực thể, thường dùng tốn nhận thực thơng báo nhiều toán nhận thực khác HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT o GVHD: PGS TS Thầy Đỗ Văn Nhơn Ủy quyền: Chuyển cho thực thể khác quyền đại diện làm việc o Cấp chứng chỉ: Cấp xác nhận thơng tin thực thể tín nhiệm o Báo nhận: Xác nhận thông báo nhận hay dịch vụ thực o Làm chứng: Kiểm thử việc tồn thông tin thực thể khác với người chủ sở hữu thông tin o Khơng chối bỏ được: Ngăn ngừa việc chối bỏ trách nhiệm cam kết có (thí dụ ký vào văn bản) o Ẩn danh: che giấu danh tính thực thể tham gia tiến trình (thường dùng giao dịch tiền điện tử) o - Thu hồi: Rút lại giấy chứng hay ủy quyền cấp Cơ sở giải pháp cho toán kể phương pháp mật mã, đặc biệt mật mã khóa cơng khai - Trong giới số, có cách để xác thực người mức độ tin cậy thông tin máy tính Một Thẻ thơng hành (Pass Card) mà nước ta chưa phổ biến Hai Password, cách sử dụng tên truy nhập (User Name) mật (Password) cung cấp cho giao diện đăng nhập để xác thực thông tin Thứ ba, dùng chữ ký điện tử (Digital Signature) II Mã hóa liệu giải mã II.1 Tổng quan mã hóa liệu giải mã HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn Hình 1:Quy trình mã hóa liệu - Sự phát triển chóng mặt Internet tác động đến công việc kinh doanh người tiêu dùng với hứa hẹn việc thay đổi cách mà người sống làm việc Nhưng mối lo ngại lớn đề cập đến việc bảo mật Internet, đặc biệt thơng tin mang tính nhạy cảm riêng tư gửi mạng - Mã hóa ngành nghiên cứu thuật toán phương thức để đảm bảo tính bí mật (thường dạng văn lưu trữ máy tính) Các sản phẩm lĩnh vực hệ mã mật, hàm băm, hệ chữ ký điện tử, chế phân phối, quản lý khóa giao thức mật mã - Có nhiều thơng tin mà không muốn người khác biết gửi như: thông tin Credit-Card, thông tin kinh doanh công ty, thông tin tài khoản cá nhân, thông tin cá nhân số chứng minh thư, số thẻ - Q trình mã hố máy tính dựa vào khoa học mật mã (Cryptography) người sử dụng từ lâu đời Trước thời đại số hoá, người sử dụng mật mã nhiều phủ, chủ yếu mục đích quân Hầu hết phương pháp mã hoá dùng dựa vào máy tính, đơn giản mã người sinh dễ bị phá cơng cụ máy tính Các hệ thống mã hố máy tính phổ biến thuộc hai loại sau: o o - Mã hoá với khoá đối xứng (Symmetric-key Encryption) Mã hố với khố cơng khai (Public-key Encryption) Gần kiện liên quan tới hàm băm MD5 (một hàm băm thuộc họ MD Ron Rivest phát triển) SHA Một nhóm nhà khoa học người Trung Quốc (Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu) phát triển phương pháp cho phép phát đụng độ hàm băm sử dụng rộng rãi số hàm băm Đây kiện lớn ngành mật mã học ứng dụng rộng rãi xem cịn quan trọng thân hệ mã mật hàm băm Do kiện hãng viết phần mềm HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn lớn (như Microsoft) nhà mật mã học khuyến cáo lập trình viên sử dụng hàm băm mạnh (như SHA-256, SHA-512) ứng dụng II.2 Mã hóa bất đối xứng (asymmetric) - Mật mã hóa khóa cơng khai dạng mật mã hóa cho phép người sử dụng trao đổi thơng tin mật mà khơng cần phải trao đổi khóa chung bí mật trước Điều thực cách sử dụng cặp khóa có quan hệ tốn học với khóa cơng khai khóa cá nhân (hay khóa bí mật) - Trong mật mã hóa khóa cơng khai, khóa cá nhân phải giữ bí mật khóa cơng khai phổ biến cơng khai Trong khóa, dùng để mã hóa khóa cịn lại dùng để giải mã Điều quan trọng hệ thống khơng thể tìm khóa bí mật biết khóa cơng khai Hệ thống mật mã hóa khóa cơng khai sử dụng với mục đích: - o Mã hóa: giữ bí mật thơng tin có người có khóa bí mật giải mã o Tạo chữ ký số: cho phép kiểm tra văn có phải tạo với khóa bí mật hay khơng o Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thơng tin mật bên - Khơng phải tất thuật tốn mật mã hóa khóa bất đối xứng hoạt động giống phần lớn gồm khóa có quan hệ tốn học với nhau: cho mã hóa để giải mã Để thuật toán đảm bảo an tồn khơng thể tìm khóa giải mã biết khóa dùng mã hóa Điều cịn gọi mã hóa cơng khai khóa dùng để mã hóa cơng bố cơng khai mà khơng ảnh hưởng đến bí mật văn mã hóa - Các thơng tin để mở khóa có người sở hữu biết Tồn khả người tìm khóa bí mật Khơng giống với hệ thống mật mã HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch môn Toán cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn sử dụng lần (one-time pad) tương đương, chưa có thuật tốn mã hóa khóa bất đối xứng chứng minh an tồn trước cơng dựa chất toán học thuật toán Khả mối quan hệ khóa hay điểm yếu thuật toán dẫn tới cho phép giải mã khơng cần tới khóa hay cần khóa mã hóa chưa loại trừ An tồn thuật toán dựa ước lượng khối lượng tính tốn để giải tốn gắn với chúng Các ước lượng lại thay đổi tùy thuộc khả máy tính phát toán học - Mặc dù vậy, độ an tồn thuật tốn mật mã hóa khóa công khai tương đối đảm bảo Nếu thời gian để phá mã (bằng phương pháp duyệt tồn bợ) ước lượng 1000 năm thuật tốn hồn tồn dùng để mã hóa thơng tin thẻ tín dụng - Rõ ràng thời gian phá mã lớn nhiều lần thời gian tồn thẻ (vài năm) II.3 Mã hóa đối xứng (symmetric) - Trong mật mã học, thuật tốn khóa đối xứng (tiếng Anh: symmetric-key algorithms) lớp thuật tốn mật mã hóa khóa dùng cho việc mật mã hóa giải mã có quan hệ rõ ràng với (có thể dễ dàng tìm mợt khóa biết khóa kia) - Khóa dùng để mã hóa có liên hệ cách rõ ràng với khóa dùng để giải mã có nghĩa chúng hoàn toàn giống nhau, khác nhờ biến đổi đơn giản hai khóa Trên thực tế, khóa đại diện cho bí mật phân hưởng hai bên nhiều sử dụng để giữ gìn bí mật kênh truyền thơng tin - Thuật tốn đối xứng chia làm hai thể loại, mật mã luồng (stream ciphers) mật mã khối (block ciphers) Mật mã luồng mã hóa bit thơng điệp mật mã khối gộp số bit lại mật mã hóa chúng đơn vị Cỡ khối dùng thường khối 64 bit Thuật toán tiêu chuẩn mã hóa HVTH: Phan Trọng Nghĩa – CH1301042 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn tân tiến (Advanced Encryption Standard), NIST công nhận tháng 12 năm 2001, sử dụng khối gồm 128 bit - Các thuật toán đối xứng thường không sử dụng độc lập Trong thiết kế hệ thống mật mã đại, hai thuật toán bất đối xứng thuật toán đối xứng sử dụng phối hợp để tận dụng ưu điểm hai Những hệ thống sử dụng hai thuật toán bao gồm SSL (Secure Sockets Layer), PGP (Pretty Good Privacy) GPG (GNU Privacy Guard) Các thuật tốn chìa khóa bất đối xứng sử dụng để phân phối chìa khóa mật cho thuật tốn đối xứng có tốc độ cao - Một số ví dụ thuật tốn đối xứng tiếng bao gồm Twofish, Serpent, AES (còn gọi Rijndael), Blowfish, CAST5, RC4, Tam phần DES (Triple DES), IDEA (International Data Encryption Algorithm - Thuật tốn mật mã hóa liệu quốc tế) - Hạn chế thuật toán khóa đối xứng bắt nguồn từ yêu cầu phân hưởng chìa khóa bí mật, bên phải có chìa Do khả chìa khóa bị phát đối thủ mật mã, chúng thường phải bảo an phân phối dùng Hậu yêu cầu việc lựa chọn, phân phối lưu trữ chìa khóa cách khơng có lỗi, khơng bị mát việc làm khó khăn, khó đạt cách đáng tin cậy - Để đảm bảo giao thơng liên lạc an tồn cho tất người nhóm gồm n người, tổng số lượng chìa khóa cần phải có n(n-1)/2 - Các thuật tốn khóa đối xứng khơng thể dùng cho mục đích xác thực hay mục đích chống thối thác II.4 Hàm băm - Hashing - Hashing phương thức mật mã khơng phải thuật tốn mã hoá Đúng vậy, hashing sử dụng chứng số biết đến với tên "hash value – giá trị hash", "hash – băm", Message Authentication HVTH: Phan Trọng Nghĩa – CH1301042 10 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn IV.1.1 Mơ hình chữ ký điện tử sử dụng khóa cơng khai Hình 7: Mơ hình chữ ký điện tử - Chữ ký điện tử (digital signature) đoạn liệu ngắn đính kèm với văn gốc để chứng thực tác giả văn giúp người nhận kiểm tra tính tồn vẹn nội dung văn gốc - Chữ ký điện tử tạo cách áp dụng thuật toán băm chiều văn gốc để tạo phân tích văn (message digest) hay cịn gọi fingerprint, sau mã hóa private key tạo chữ ký số đính kèm với văn gốc để gửi Khi nhận, văn tách làm phần, phần văn gốc tính lại fingerprint để so sánh với fingerprint cũ phục hồi từ việc giải mã chữ ký số HVTH: Phan Trọng Nghĩa – CH1301042 29 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn IV.1.2 Chữ ký điện tử chứng điện tử - Chữ ký điện tử hoạt động dựa hệ thống mã hóa khóa cơng khai Hệ thống mã hóa gồm hai khóa, khóa bí mật khóa cơng khai (khác với hệ thống mã hóa khóa đối xứng, gồm khóa cho q trình mã hóa giải mã) Mỗi chủ thể có cặp khóa vậy, chủ thể giữ khóa bí mật, cịn khóa cơng khai chủ thể đưa công cộng để biết Nguyên tắc hệ thống mã hóa khóa cơng khai là, ta mã hóa khóa bí mật khóa công khai giải mã thông tin được, ngược lại, ta mã hóa khóa cơng khai, có khóa bí mật giải mã Gửi - Sau đăng ký chứng số (với nhà cung cấp chứng số), ta cấp khóa riêng (khóa bí mật) lưu chỗ 'kín' (ẩn) PC - Trước gửi văn bản, áp dụng thuật toán phần mềm để nhận giá trị băm văn gốc - Chúng ta mã hóa giá trị băm khóa riêng (hay gọi 'ký' lên giá trị băm), thu gọi chữ ký điện tử - Sau văn gốc gửi với chữ ký điện tử khóa cơng khai Nhận: - Khi nhận thư, người nhận sử dụng khóa cơng khai người gửi giải mã chữ ký điện tử để biết người gửi có ta không, đồng thời thu giá trị băm văn gốc - Người nhận dùng thuật toán băm để thu giá trị băm văn nhận - Nếu giá trị băm văn khẳng định tồn vẹn (khơng bị thay đổi từ sau người gửi ký) HVTH: Phan Trọng Nghĩa – CH1301042 30 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn IV.1.3 Kiểm tra xác nhận tài liệu ký - Giả sử B muốn xác nhận tài liệu TL A, với chữ ký mã TL B dùng khóa cơng khai A để giải mã mã TL A Sau giải mã, B thu giải mã TL, so sánh giải mã TL tài liệu TL Nếu giải mã TL giống với tài liệu TL chữ ký A - Một số trường hợp xảy với chữ ký điện tử, giống trường hợp xảy với chữ ký truyền thống Ví dụ, tài liệu TL A bị thay đổi (dù ký tự, dấu chấm, hay ký hiệu bất kỳ), B xác nhận, thấy giải mã TL khác với tài liệu TL A B kết luận tài liệu bị thay đổi, tài liệu A ký - Trường hợp khác, A để lộ khóa bí mật, nghĩa văn tài liệu anh ký người khác có khóa bí mật A Khi xác nhận tài liệu cho A ký, chữ ký hợp lệ, khơng phải A ký Như vậy, chữ ký A khơng cịn giá trị pháp lý Do đó, việc giữ khóa bí mật tuyệt đối quan trọng hệ thống chữ ký điện tử IV.2 Cách làm việc chữ ký điện tử - Digital Signature tạo kiểm tra mật mã, phương pháp thuộc lĩnh vực tốn học, chuyển tồn message thành dạng khó nhận dạng giải mã Digital signature sử dụng hai khóa thơng dụng, khóa để tạo digital signature chuyển message thành dạng khó nhận dạng, khóa dùng để kiểm tra digital signature để chuyển message mã hóa dạng nguyên thủy - Digital signature cách để bảo mật cho tài liệu điện tử (e-mail, spreaDigital Signatureheet_bảng tính, text file, ) đáng tin cậy Đáng tin nghĩa ta biết tạo tài liệu ta biết khơng bị thay đổi cách từ người tạo - Digital signature dựa vào thuật tốn mã hố để bảo đảm độ tin cậy Mã hoá trình mang tất liệu từ máy tính gửi sang máy tính khác mã hóa thành dạng mà có máy tính gửi giải mã Độ tin cậy HVTH: Phan Trọng Nghĩa – CH1301042 31 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn trình kiểm tra xác nhận thơng tin đến từ nguồn tin cậy Hai trình liên quan chặt chẽ đến digital signature - Một Digital Signature xem giá trị số, biểu diễn dãy ký tự, sử dụng tin học biểu thức toán học Biểu thức phụ thuộc vào hai đầu vào: dãy ký tự biểu diễn dòng liệu điện tử ký số bảo mật tham chiếu đến signature public key, điều có nghĩa với chữ ký người ký truy xuất đến public key Public key khố cơng khai cho tất người, giống số điện thoại danh bạ điện thoại, cho phép việc kiểm tra chữ ký Kết cho thấy việc biểu diễn chữ ký số gắn vào liệu điện tử giống sử dụng chữ ký tay giấy tài liệu văn - Digital signature làm việc dựa hai khoá public key private key thực qua hai giai đoạn việc hình thành chữ ký tài liệu phía người gửi việc xác nhận tài liệu nhận xác ngun vẹn hay khơng phía người nhận - Vấn đề bảo mật digital signature không giống với phương pháp mã hoá cổ điển dùng khoá cho việc mã hoá người gửi giải mã người nhận mà sử dụng hai khoá: private key để mã hoá public key để giải mã kiểm tra IV.2.1 Quá trình ký Message - Bước o “Băm” tài liệu gửi thành hash-value hay gọi Message Digest, Message Digest tính tốn để đưa vào q trình mã hố chữ ký - Bước hai: Tính Message Digest o Trong bước hai tiến trình, hash-value (giá trị băm)của message thường gọi Message Digest tính tốn cách áp dụng thuật toán băm mã hoá cryptographic hashing arthgorithm MD2, MD4, MD5, SHA1,… HVTH: Phan Trọng Nghĩa – CH1301042 32 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn Một hash-value tính message dãy bit liên tục, có độ dài cố định, trích rút từ message theo cách Tất thuật tốn xác cho việc tính tốn message digest o cung cấp phép biến đổi tốn học, bit đơn từ input message biến đổi digest khác gửi đến Với cách làm việc thuật toán bảo đảm độ tin cậy trước cơng Bước ba: Tính Digital Signature - o Trong bước hai việc ký message, thông tin nhận bước băm message (Message Digest) mã hoá với khoá private key người ký vào message, giá trị băm giải mã gọi Digital Signature gửi đến Vì mục đích này, thuật tốn mã hố cho việc tính chữ ký số từ message digest dùng Thuật toán thường sử dụng RSA, DIGITAL SIGNATUREA, ECDIGITAL SIGNATUREA Thông thường, chữ ký số gắn vào message định dạng đặc biệt để kiểm tra cần thiết Hình 1: Quá trình ký message IV.2.2 Quá trình kiểm tra xác nhận chữ ký tài liệu - Kỹ thuật Digital Signature cho phép người nhận message có kèm chữ ký kiểm tra tính xác thực tính tồn vẹn Q trình kiểm tra chữ ký số - digital signatureverification nhằm mục đích xác định message gửi ký khoá private key với khóa public key gửi hay khơng Digital signatureverification khơng thể xác nhận có hay khơng message ký người gửi Nếu muốn kiểm tra có hay khơng vài người ký HVTH: Phan Trọng Nghĩa – CH1301042 33 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn message gửi đi, cần nhận public key theo cách Điều thực cách lấy public key cách an toàn (ví dụ floppy disk CD) với trợ giúp Public Key Intrasfication theo giấy chứng nhận số Nếu khơng có cách an tồn để nhận khoá public key thực từ người gửi, khơng có khả kiểm tra message gửi có phải xác thực người hay khơng - Như vậy, việc kiểm tra Digital Signature thực bước: Bước một: Tính Current Hash-Value o Trong bước một, hash-value message ký tính Với việc tính sử dụng thuật tốn băm dùng suốt q trình ký Hash-value nhận được gọi current hash-value tính từ trạng thái thời message Bước hai: Tính Original Hash-Value o Trong bước hai trình kiểm tra digital signature, digital signature giải mã với với thuật toán mã hoá sử dụng suốt trình ký Việc giải mã thực khoá public key tương ứng với khố private key dùng suốt q trình ký message Kết là, nhận original hash-value mà đựơc tính từ message gốc suốt bước trình ký (original message digest) o Bước ba: So sánh Current hash-value với Original hash-value Trong bước ba, đối chiếu current hash-value nhận bước với original hash-value nhận bước hai Nếu hai giá trị giống hệt việc kiểm tra thành công chứng minh message ký với khoá private key với khố public key dùng q trình kiểm tra Nếu hai giá trị khác nghĩa digital signature sai việc kiểm tra thất bại HVTH: Phan Trọng Nghĩa – CH1301042 34 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn Hình 92: Quá trình kiểm tra xác nhận chữ ký tài liệu - Như vây trình hoạt động digital signature minh hoạ hình sau: Encrypt Private Key HVTH: Phan Trọng Nghĩa – CH1301042 35 Bài thu hoạch mơn Tốn cho KHMT GVHD: PGS TS Thầy Đỗ Văn Nhơn Decrypt Public Key Hình 3: Q trình làm việc mợt Digital Signature - Nguyên nhân việc sai chữ ký: có lý việc nhận digital signature sai o Nếu digital signature giả mạo giải mã với khoá public key, giá trị nguyên thuỷ nhận original hash-value message gốc vài giá trị khác có giống o Nếu message bị đổi sau ký, current hash-value tính từ message giả mạo khác với original hash-value hai message khác hash-value khác HVTH: Phan Trọng Nghĩa – CH1301042 36 Bài thu hoạch mơn Tốn cho KHMT o GVHD: PGS TS Thầy Đỗ Văn Nhơn Nếu public key không tương ứng với private key dùng ký, original hash-value nhận giải mã chữ ký với khố khơng giá trị C ỨNG DỤNG MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ I Chức - Ứng dụng sử dụng ngôn ngữ C# để mô quy trình tạo chữ ký điện tử kiểm tra chữ ký điện tử I.1 Tạo khóa - Quá trình tạo hai khóa public key private key (đã đề cập nội dung thuật giải RSA – trang 20) I.2 Tạo chữ ký Dữ liệu (M) MD5 Mã băm (S) RSA (Mã hóa) Public key (PuK) Dữ liệu mã hóa (S’) Hình 11: Mơ hình tạo chữ ký điện tử HVTH: Phan Trọng Nghĩa – CH1301042 37 Bài thu hoạch mơn Tốn cho KHMT - GVHD: PGS TS Thầy Đỗ Văn Nhơn Giao diện chương trình mơ trình tạo chữ ký Hình 12: Giao diện chương trình mơ q trình tạo chữ ký I.3 Kiểm tra tính hợp lệ chữ ký Dữ liệu mã hóa (S’) Dữ liệu (M) RSA (Giải mã) MD5 Mã băm (S) Mã băm (M’) Private key (PrK) So sánh Hình 13: Mơ hình kiểm tra tính hợp lệ chữ ký điện tử HVTH: Phan Trọng Nghĩa – CH1301042 38 Bài thu hoạch mơn Tốn cho KHMT - GVHD: PGS TS Thầy Đỗ Văn Nhơn Giao diện chương trình mơ q trình kiểm tra tính hợp lệ chữ ký Hình 14: Giao diện ứng dụng kiểm tra tính hợp lệ chữ ký điện tử II Mã chương trình - Hàm tạo khóa private void taoKhoa() { //Tinh n=p*q n = p * q; //Tính Phi(n)=(p-1)*(q-1) phi_n = (p - 1) * (q - 1); //Tính e mợt số ngẫu nhiên có giá trị 0< e