MỞ ĐẦU1. Lý do chọn đề tài Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và an toànthông tin. Với sự bùng nổ mạnh mẽ của internet hiện nay, mạng máy tính đang ngàycàng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, và khi nó trởthành phương tiện điều hành các hệ thống thì nhu cầu bảo mật thông tin được đặt lênhàng đầu. Việc sử dụng chữ ký số là một giải pháp hữu hiệu, ngày càng được ứng dụng nhiềutrong thực tế, không chỉ giới hạn trong lĩnh vực công nghệ thông tin, mật mã học mà cònđược áp dụng trong nhiều lĩnh vực khác như tài chính ngân hàng, viễn thông,... Mật mã học khóa công khai tạo ra chữ ký số và úng dụng vào các tài liệu. Hệ mãhóa RSA – hệ mã hóa điểm hình của mật mã công khai cùng với hàm băm mật mã SHAchính là những công cụ chính tạo ra chữ ký số.2. Cấu trúc đồ án Chương 1: Tổng quan Chương 2: Hệ mã RSA – Hàm băm SHA và Chữ ký số Chương 3: Xây dựng ứng dụng
TRƯỜNG ĐẠI HỌC TRẦN ĐẠI NGHĨA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MƠN HỌC MƠN HỌC: AN TỒN VÀ BẢO MẬT HỆ THỐNG THÔNG TIN ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH CHỮ KÝ SỐ ĐỂ XÁC THỰC NỘI DUNG CỦA MỘT VĂN BẢN BẰNG MÃ HÓA BẤT ĐỐI XỨNG TP HỒ CHÍ MINH, THÁNG 11 NĂM 2020 TRƯỜNG ĐẠI HỌC TRẦN ĐẠI NGHĨA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MƠN HỌC MƠN HỌC: AN TỒN VÀ BẢO MẬT HỆ THỐNG THƠNG TIN ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH CHỮ KÝ SỐ ĐỂ XÁC THỰC NỘI DUNG CỦA MỘT VĂN BẢN BẰNG MÃ HĨA BẤT ĐỐI XỨNG Nhóm báo cáo: Nguyễn Tiểu Phụng Huỳnh Đức Anh Tuấn Giảng viên hướng dẫn: Th.s Đặng Thế Hùng TP HỒ CHÍ MINH, THÁNG 11 NĂM 2020 LỜI CẢM ƠN Chúng em xin gửi lời cảm ơn chân thành đến thầy cô giảng viên khoa Công nghệ thông tin trường Đại học Trần Đại Nghĩa Và đặc biệt thầy Thạc sĩ Đặng Thế Hùng – giảng viên học phần “An toàn bảo mật hệ thống thơng tin” tận tình hướng dẫn, truyền đạt kiến thức kỹ cần thiết để chúng em hồn thành đồ án mơn học Tuy nhiên, trình tìm hiểu nghiên cứu đề tài, kiến thức chuyên ngành thời gian hạn chế chúng em nhiều thiếu sót q trình tìm hiểu, thực hiện, đánh giá trình bày đề tài Rất mong quan tâm, góp ý thầy giảng viên môn để đồ án môn học chúng em hoàn chỉnh Xin chân thành cảm ơn! MỞ ĐẦU Lý chọn đề tài - Mật mã học vấn đề quan trọng lĩnh vực bảo mật an tồn thơng tin Với bùng nổ mạnh mẽ internet nay, mạng máy tính ngày đóng vai trị thiết yếu lĩnh vực hoạt động toàn xã hội, trở thành phương tiện điều hành hệ thống nhu cầu bảo mật thơng tin đặt lên hàng đầu - Việc sử dụng chữ ký số giải pháp hữu hiệu, ngày ứng dụng nhiều thực tế, không giới hạn lĩnh vực công nghệ thông tin, mật mã học mà áp dụng nhiều lĩnh vực khác tài ngân hàng, viễn thơng, - Mật mã học khóa cơng khai tạo chữ ký số úng dụng vào tài liệu Hệ mã hóa RSA – hệ mã hóa điểm hình mật mã công khai với hàm băm mật mã SHA cơng cụ tạo chữ ký số Cấu trúc đồ án - Chương 1: Tổng quan - Chương 2: Hệ mã RSA – Hàm băm SHA Chữ ký số - Chương 3: Xây dựng ứng dụng MỤC LỤC CHƯƠNG – TỔNG QUAN 1.1 Tổng quan 1.2 Các đặc trưng hệ thống thông tin bảo mật 1.2.1 Tính bảo mật 1.2.2 Tính tồn vẹn 1.2.3 Tính khả dụng CHƯƠNG HỆ MÃ RSA – HÀM BĂM SHA VÀ CHỮ KÝ SỐ 2.1 Hệ mã RSA 2.1.1 Cấu trúc hệ thống mật mã bất đối xứng 2.1.2 Thuật toán mật mã RSA 2.2 Thuật toán băm SHA 12 2.2.1 Hàm băm 12 2.2.2 Thuật toán SHA 14 2.3 Chữ ký số 18 2.3.1 Nguyên lý hoạt động chữ ký số 18 2.3.2 Chuẩn chữ ký DSS 21 CHƯƠNG XÂY DỰNG ỨNG DỤNG 23 3.1 Xác định mơ hình 23 3.2 Cài đặt 24 3.2.1 Modul tạo khóa 24 3.2.2 Modul tạo chữ ký cho file văn 25 3.2.3 Modul kiểm tra xác thực 25 TÀI LIỆU THAM KHẢO 26 CHƯƠNG – TỔNG QUAN 1.1 - Tổng quan Vấn đề bảo đảm an tồn cho hệ thống thơng tin vấn đề quan trọng cần cân nhắc suốt q trình thiết kế, thi cơng, vận hành bảo dưỡng hệ thống thông tin - Cũng tất hoạt động khác đời sống xã hội, từ người có nhu cầu lưu trữ xử lý thông tin, đặc biệt từ thông tin xem phận tư liệu sản xuất, nhu cầu bảo vệ thơng tin trở nên thiết Bảo vệ thông tin bảo vệ tính bí mật thơng tin tính tồn vẹn thông tin Một số loại thông tin cịn ý nghĩa chúng giữ kín giới hạn số đối tượng đó, ví dụ thông tin chiến lược quân chẳng hạn Đây tính bí mật thơng tin Hơn nữa, thông tin người ghi nhớ hữu hạn óc, nên cần phải có thiết bị để lưu trữ thơng tin Nếu thiết bị lưu trữ hoạt động khơng an tồn, thơng tin lưu trữ bị sai lệch tồn hay phần, tính tồn vẹn thơng tin khơng cịn bảo đảm - Khi máy tính sử dụng để xử lý thơng tin, hiệu xử lý thông tin nâng cao lên, khối lượng thông tin xử lý ngày lớn lên, kéo theo nó, tầm quan trọng thông tin đời sống xã hội tăng lên Nếu trước đây, việc bảo vệ thông tin trọng vào vấn đề dùng chế phương tiện vật lý để bảo vệ thông tin theo nghĩa đen từ này, sau, vấn đề bảo vệ thông tin trở nên đa dạng phức tạp Có thể kể hai điều thay đổi lớn sau vấn đề bảo vệ thông tin: + Sự ứng dụng máy tính việc xử lý thơng tin làm thay đổi dạng lưu trữ thông tin phương thức xử lý thông tin Cần thiết phải xây dựng chế bảo vệ thông tin theo đặc thù hoạt động máy tính Từ xuất yêu cầu bảo vệ an toàn hoạt động máy tính (Computer Security) tồn song song với yêu cầu bảo vệ an tồn thơng tin (Information Security) + Sự phát triển mạnh mẽ mạng máy tính hệ thống phân tán làm thay đổi phạm vi tổ chức xử lý thông tin Thông tin trao đổi thiết bị xử lý thông qua khoảng cách vật lý lớn, gần không giới hạn, làm xuất thêm nhiều nguy an tồn thơng tin Từ xuất u cầu bảo vệ an tồn hệ thống mạng (Network Security), gồm chế kỹ thuật phù hợp với việc bảo vệ an tồn thơng tin chúng trao đổi thiết bị mạng 1.2 - Các đặc trưng hệ thống thông tin bảo mật Một hệ thống thông tin bảo mật (Secure Information System) hệ thống mà thông tin xử lý phải đảm bảo đặc trưng sau đây: + Tính bí mật thơng tin (Confidentiality) + Tính tồn vẹn thơng tin (Integrity) + Tính khả dụng thơng tin (Availability) Hình 1.1 Mơ hình CIA - Ba đặc trưng liên kết lại xem mơ hình tiêu chuẩn hệ thống thơng tin bảo mật, hay nói cách khác, thành phần cốt yếu hệ thống thông tin bảo mật 1.2.1 Tính bảo mật - Một số loại thơng tin có giá trị đối tượng xác định chúng không phổ biến cho đối tượng khác Tính bí mật thơng tin tính giới hạn đối tượng quyền truy xuất đến thơng tin Đối tượng truy xuất người, máy tính phần mềm, kể phần mềm phá hoại virus, worm, spyware, … - Tuỳ theo tính chất thơng tin mà mức độ bí mật chúng có khác Ví dụ: thơng tin trị qn xem thông tin nhạy cảm quốc gia xử lý mức bảo mật cao Các thông tin khác thông tin hoạt động chiến lược kinh doanh doanh nghiệp, thông tin cá nhân, đặc biệt người tiếng, thơng tin cấu hình hệ thống mạng cung cấp dịch vụ, v.v… có nhu cầu giữ bí mật mức độ - Để đảm bảo tính bí mật thơng tin, chế phương tiện vật lý nhà xưởng, thiết bị lưu trữ, dịch vụ bảo vệ, … kỹ thuật mật mã hố (Cryptography) xem công cụ bảo mật thông tin hữu hiệu mơi trường máy tính Các kỹ thuật mật mã hố trình bày cụ thể chương II Ngoài ra, kỹ thuật quản lý truy xuất (Access Control) thiết lập để bảo đảm có đối tượng cho phép truy xuất thơng tin Access control trình bày phần chương - Sự bí mật thơng tin phải xem xét dạng yếu tố tách rời: tồn thông tin nội dung thơng tin - Đơi khi, tiết lộ tồn thơng tin có ý nghĩa cao tiết lộ nội dung Ví dụ: chiến lược kinh doanh bí mật mang tính sống cịn công ty bị tiết lộ cho công ty đối thủ khác Việc nhận thức có điều tồn quan trọng nhiều so với việc biết cụ thể nội dung thông tin, chẳng hạn tiết lộ, tiết lộ cho đối thủ tiết lộ thơng tin gì,… - Cũng lý này, số hệ thống xác thực người dùng (user authentication) ví dụ đăng nhập vào hệ điều hành Netware hay đăng nhập vào hộp thư điện tử dịch vụ khác mạng, người sử dụng cung cấp tên người dùng (user-name) sai, thay thơng báo user-name khơng tồn tại, số hệ thống thông báo mật (password) sai, số hệ thống khác thông báo chung chung “Invalid user name/password” (người dùng mật không hợp lệ) Dụng ý đằng sau câu thông báo không rõ ràng việc từ chối xác nhận việc tồn hay không tồn user-name hệ thống Điều làm tăng khó khăn cho người muốn đăng nhập vào hệ thống cách bất hợp pháp cách thử ngẫu nhiên 1.2.2 Tính tồn vẹn - Đặc trưng đảm bảo tồn nguyên vẹn thông tin, loại trừ thay đổi thơng tin có chủ đích hư hỏng, mát thông tin cố thiết bị phần mềm Tính tồn vẹn xét khía cạnh: + Tính ngun vẹn nội dung thơng tin + Tính xác thực nguồn gốc thơng tin - Nói cách khác, tính tồn vẹn thơng tin phải đánh giá hai mặt: toàn vẹn nội dung tồn vẹn nguồn gốc - Ví dụ: ngân hàng nhận lệnh toán người tự xưng chủ tài khoản với đầy đủ thông tin cần thiết Nội dung thông tin bảo tồn ngân hàng nhận cách xác yêu cầu khách hàng (đúng người xưng chủ tài khoản gởi đi) - Tuy nhiên, lệnh tốn khơng phải cho chủ tài khoản đưa mà người khác nhờ biết thơng tin bí mật tài khoản mạo danh chủ tài khoản để đưa ra, ta nói nguồn gốc thơng tin khơng bảo tồn - Một ví dụ khác, tờ báo đưa tin kiện vừa xảy quan quan trọng phủ, có ghi nguồn tin từ người phát ngôn quan Tuy nhiên, tin thật khơng phải người phát ngôn công bố mà lấy từ kênh thông tin khác, không xét đến việc nội dung thơng tin có hay khơng, ta nói nguồn gốc thơng tin khơng bảo tồn - Sự tịan vẹn nguồn gốc thơng tin số ngữ cảnh có ý nghĩa tương đương với đảm bảo tính khơng thể chối cãi (non-repudiation) hệ thống thông tin - Các chế đảm bảo tồn vẹn thơng tin chia thành loại: chế ngăn chặn (Prevention mechanisms) chế phát (Detection mechanisms) - Cơ chế ngăn chặn có chức ngăn cản hành vi trái phép làm thay đổi nội dung nguồn gốc thông tin Các hành vi bao gồm nhóm: hành vi cố gắng thay đổi thơng tin không phép truy xuất đến thông tin hành vi thay đổi thông tin theo cách khác với cách cho phép - Ví dụ: người ngồi công ty cố gắng truy xuất đến sở liệu kế tốn cơng ty thay đổi liệu Đây hành vi thuộc nhóm thứ Trường hợp nhân viên kế toán trao quyền quản lý sở liệu kế toán công ty, dùng quyền truy xuất để thay đổi thơng tin nhằm biển thủ ngân quỹ, hành vi thuộc nhóm thứ hai - Nhóm chế phát thực chức giám sát thơng báo có thay đổi diễn thơng tin cách phân tích kiện diễn hệ thống mà không thực chức ngăn chặn hành vi truy xuất trái phép đến thơng tin - Nếu tính bí mật thơng tin quan tâm đến việc thơng tin có bị tiết lộ hay khơng, tính tồn vẹn thơng tin vừa quan tâm tới tính xác thơng tin mức độ tin cậy thông tin Các yếu tố nguồn gốc thông tin, cách thức bảo vệ thông tin khứ yếu tố định độ tin cậy thông tin ảnh hưởng đến tính tồn vẹn thơng tin Nói chung, việc đánh giá tính tồn vẹn hệ thống thông tin công việc phức tạp + Brute-force attack: tìm khố riêng PR + Mathematical attack: xác định p q cách phân tích N thành tích thừa số nguyên tố từ xác định e d + Timing attack: dựa thời gian thực thi thuật toán giải mã + Chosen ciphertext attack: sử dụng đọan thông tin mật (ciphertext) đặc biệt để khôi phục thông tin gốc - Tuy nhiên thực tế, nguy công hệ thống mật mã RSA thấp, RSA thuật toán linh động, kích thước khối liệu gốc chiều dài khố dễ dàng thay đổi mà khơng ảnh hưởng đến thuật toán mã 2.2 Thuật toán băm SHA 2.2.1 Hàm băm - Các hàm băm bảo mật (secure hash functions) hay gọi tắt hàm băm kỹ thuật để thực chế xác thực thơng tin (message authentication) Ngồi ra, hàm băm cịn sử dụng nhiều thuật tốn mật mã, chữ ký số (digital signature) nhiều ứng dụng khác - Nguyên tắc hàm băm biến đổi khối thơng tin gốc có độ dài thành đoạn thơng tin ngắn có độ dài cố định gọi mã băm (hash code hay message digest) Mã băm dùng để kiểm tra tính xác thơng tin nhận Thơng thường, mã băm gởi kèm với thơng tin gốc Ở phía nhận, hàm băm lại áp dụng thông tin gốc để tìm mã băm mới, giá trị so sánh với mã băm kèm với thông tin gốc Nếu hai mã băm giống nhau, nghĩa thông tin gởi không bị thay đổi - Chỉ dùng hàm băm để tính mã băm từ thơng tin gốc khơng thể tính thơng tin gốc từ mã băm Do đặc tính này, hàm băm bảo mật gọi hàm băm chiều (one way hash fntion) 12 Hình 2.2 Một ứng dụng điểm hình hàm băm - Hình 2.2 mô tả nguyên lý hoạt động giải thuật xác thực thông tin sử dụng hàm băm đơn giản - Các yêu cầu hàm băm bảo mật H: + H áp dụng cho khối thông tin với chiều dài + Kết hàm H ln có chiều dài cố định + Việc tính giá trị H(x) với giá trị x cho trước phải đơn giản, thực phần cứng phần mềm + Cho trước giá trị h, khơng thể tìm giá trị x cho H(x) = h, gọi thuộc tính chiều hàm băm (one-way property) + Cho trước khối thông tin x, tìm khối thơng tin y khác x cho H(y) = H(x) Thuộc tính gọi weak collision resistance + Khơng thể tìm hai khối thông tin x y khác cho H(x) = H(y) - Thuộc tính gọi strong collision resistance - Tấn công hàm băm: 13 + Nguyên lý làm việc hàm băm biểu diễn khối thơng tin có kích thước lớn đoạn thơng tin có kích thước nhỏ nhiều gọi mã băm, trường hợp lý tưởng biểu diễn ánh xạ 1:1, tức khơng xảy tình khối thông tin khác cho mã băm Trường hợp có khối thơng tin khác cho mã băm, ta nói thuật tóan băm bị đụng độ (collision) Mục tiêu công vào hàm băm bảo mật tạo tình đụng độ + Xác suất để hai khối thơng tin có mã băm phụ thuộc vào kích thước mã băm, tức phụ thuộc vào số lượng mã băm có Kích thước nhỏ khả xảy lớn, xác suất cơng thành cơng lớn Bài tốn ngày sinh (Birthday problem)(*) rằng: với kích thước mã băm n bit, để xác suất xảy đụng độ 50% cần có khoảng 2n/2 khối thông tin xử lý Người ta thường dùng nguyên lý để cơng vào ứng dụng có sử dụng hàm băm, công gọi Birthday attack + Nói chung, độ an tồn hàm băm phụ thuộc vào kích thước ngõ 2.2.2 Thuật tốn SHA - SHA (Secure Hash Function) chuẩn hố năm 1993, sau chỉnh sửa năm 1995 đặt tên SHA-1, từ phiên cũ gọi SHA-0 - SHA-1 tạo mã băm có chiều dài cố định 160 bit Về sau, có nhiều nâng cấp SHA, chủ yếu tăng chiều dài mã băm, từ xuất phiên khác SHA, bao gồm: SHA-256 (mã băm dài 256 bit), SHA-384 (mã băm dài 385 bit) SHA-512 (mã băm dài 512 bit) 14 Hình 2.3 Các phiên SHA - Phần mơ tả thuật tốn băm SHA-1, phiên khác SHA thiết kế theo nguyên lý tương tự - SHA-1 chấp nhận khối thông tin có kích thước tối đa 264 bit để tạo mã băm với độ dài cố định 160 bit Tịan khối thơng tin xử lý theo khối 512 bit, qua công đoạn sau: B Gắn bit đệm – Append padding bit: thông tin gốc gắn thêm bit thừa để có chiều dài (448 modulo 512) bit, tức tất khối trước có chiều dài 512 bit, riêng khối cuối 448 bit Chú ý việc chèn thêm bit vào khối thông tin thực tất khối thông tin gốc, kể khối thơng tin gốc có số bit xác 448 mod 512 (khi chuỗi bit chèn vào có chiều dài 512 bit) B Gắn chiều dài – Append length: chuỗi 64 bit gắn thêm vào khối thông tin 64 bit xử lý số nguyên không dấu, cho biết chiều dài khối thông tin gốc (tức chiều dài thật chưa thực công đoạn 1) Sau công đoạn này, khối thông tin nhận có chiều dài bội số 512 bit, chia thành nhóm, nhóm tương đương với 16 ghi 32 bit (16*32 = 512 bit) B Khởi tạo đệm MD – Initialize MD buffer: đệm MD (message digest) nhớ có dung lượng 160 bit dùng để chứa kết trung gian kết cuối mã băm Bộ nhớ tổ chức thành ghi 32 bit khởi tạo giá trị ban đầu sau (Hex): 15 A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 B Xử lý thông tin theo khối 512 bit – Process message: công đọan trung tâm hàm băm, gọi hàm nén (compress function), bao gồm vịng, vịng 20 bước - Hình 2.4 trình trình bày sơ đồ khối bước Hình 2.4 Xử lý thơng tin SHA-1 16 - Cả vịng có cấu trúc tương tự nhau, vòng sử dụng hàm luận lý khác f1, f2, f3 f4 - Ngõ vào vòng khối bit Y (512 bit) xử lý với giá trị đệm MD Mỗi vòng sử dụng biến cộng Kt khác nhau, với t 79 biểu diễn cho 80 bước vịng Tuy nhiên, thực tế có giá trị K khác sau: - Bước Giá trị K (Hexa) t 19 Kt = 5A827999 20 t 39 Kt = 6ED9EBA11 40 t 59 Kt = 8F1BBCDC 60 t 79 Kt = CA62C1D6 Ngõ vòng thứ tư (tức bước 80) cộng với ngõ vào vòng để tạo CVq+1 Thao tác cộng thực cách độc lập, ứng với ghi đệm MD với từ tương ứng CVq, sử dụng phép cộng modulo 232 B Xuất kết - Output: Sau tất khối 512 bit xử lý, ngõ bước cuối giá trị mã băm - Một thuộc tính quan trọng giải thuật băm SHA-1 bit mã băm có quan hệ với tất bit thông tin gốc Việc lặp lại hàm f cách phức tạp nhằm mục đích đảm bảo liệu trộn cách kỹ lưỡng khó tìm khối thơng tin gốc khác tạo mã băm 17 2.3 Chữ ký số 2.3.1 Nguyên lý hoạt động chữ ký số - Chữ ký số chế xác thực cho phép người tạo thông tin (message creator) gắn thêm đọan mã đặc biệt vào thông tin có tác dụng chữ ký Chữ ký tạo cách áp dụng hàm băm lên thơng gốc, sau mã hóa thơng tin gốc dùng khóa riêng người gởi Chữ ký số có mục đích đảm bảo tính tịan vẹn nguồn gốc nội dung thông tin - Tại phải dùng chữ ký số chế xác thực thông tin (message authentication) thực chức xác thực nguồn gốc thông tin? Các chế xác thực thông tin sử dụng hàm băm chiều có tác dụng bảo vệ thơng tin trao đổi hai thực thể thông tin khỏi xâm phạm thực thể thứ 3, nhiên khơng có tác dụng ngăn chặn xâm phạm hai thực thể - Ví dụ: Thực thể A gởi tin X cho thực thể B sử dụng chế xác thực đó, chế đảm bảo có A B dùng chung khố bí mật K để tạo mã xác thực từ thông tin gốc Tuy nhiên, thực thể B đổi tin X thành tin Y, với khóa bí mật K, thực thể B hịan tịan tạo thơng tin xác thực để gắn vào Y, làm cho trở thành tin hợp lệ thực chất tin thực thể A tạo Một ví dụ khác, thực thể A từ chối xác nhận việc gởi tin X cho thực thể B, với chế xác thực trên, thực thể B hồn tồn có khả giả mạo thông tin đưa từ thực thể A Giống chữ ký thông thường (chữ ký tay), chữ ký số phải có đầy đủ thuộc tính sau đây: + Phải xác nhận xác người ký ngày phát sinh chữ ký + Phải xác thực nội dung thông tin thời điểm phát sinh chữ ký 18 + Phải có khả cho phép kiểm chứng người thứ để giải tranh chấp có - Như vậy, chức chữ ký số bao gồm chức xác thực thông tin - Các yêu cầu chữ ký số: + Là chuỗi bit phát sinh từ khối thông tin cần xác nhận (thông tin gốc) + Chữ ký phải chứa thông tin nhận dạng riêng người ký để tránh giả mạo tránh phủ nhận + Quy trình tạo chữ ký xác minh chữ ký phải đơn giản, nhanh chóng + Chữ ký thơng thể bị giả mạo cách + Có thể chép chữ ký dành cho mục đích lưu trữ - Phân loại chữ ký số: Có nhiều thuật tốn phát sinh chữ ký số khác Có thể phân loại thuật tốn theo cách sau: + Chữ ký cố định chữ ký ngẫu nhiên: thuật toán tạo chữ ký cố định (deterministic) tạo chữ ký ứng với khối thông tin gốc xác định, nghĩa thực nhiều lần thuật toán tạo chữ ký tin cho kết Ngược lại, chữ ký ngẫu nhiên (probabilistic) tạo chữ ký khác tin + Chữ ký phục hồi chữ ký không phục hồi được: chế tạo chữ ký phục hồi (reversible signature) cho phép người nhận phục hồi lại thông tin gốc từ chữ ký, điều có nghĩa chữ ký phải có chứa thơng tin gốc dạng mã hố đó, kết chữ ký số có kích thước lớn thơng tin gốc Khi đó, người gởi cần gởi chữ ký đủ Do vậy, chế tạo chữ ký gọi chữ ký khôi phục tin (signature with message recovery) Ngược lại, chế tạo chữ ký không phục hồi (non-reversible signature) không cho phép phục hồi thông tin gốc từ chữ ký, vậy, chữ ký khối thơng tin cộng thêm có kích thước 19 nhỏ thơng tin gốc Người gởi cần phải gởi chữ ký kèm với thông tin gốc dạng phụ lục, chế tạo chữ ký gọi chữ ký với phụ lục (signature with appendix) - Các phương pháp thực chữ ký số: Có hai phương pháp thực chữ ký số ký trực tiếp (direct signature) ký thông qua trọng tài (arbitrated signature) + Ký trực tiếp (direct signature): Ở phương pháp này, giả thiết phía nhận biết khóa cơng khai phía gởi Do đó, chữ ký tạo cách mã hóa tịan tin khóa riêng người tạo thơng tin, mã hóa phần mã băm (kết tạo ta từ hàm băm thơng tin gốc) dùng khóa riêng người tạo thơng tin Hình 2.5 Chữ ký trực tiếp 20 Để đạt tính bảo mật thơng tin thơng tin gốc với chữ ký vừa tạo mã hóa sử dụng khóa cơng khai thực thể nhận chữ ký (trong trường hợp dùng mật mã bất đối xứng) dùng khóa bí mật (trong trường hợp dùng mật mã đối xứng) Một nhược điểm dễ thấy phương thức ký trực tiếp độ an tịan chữ ký phụ thuộc cao độ vào khóa riêng người tạo chữ ký Do vậy, khóa riêng bị bị tiết lộ ý nghĩa chữ ký số khơng cịn + Ký thông qua trọng tài (arbitrated signature): giải pháp xây dựng để khắc phục nhược điểm chữ ký trực tiếp Khi thực thể A muốn gởi tin cho thực thể B, trình tạo chữ ký thực bình thường chữ ký trực tiếp Tuy nhiên, trước tin gởi đến B, phải gởi đến thực thể thứ gọi trọng tài (arbiter) Trọng tài thực việc kiểm tra, xác nhận tính xác thơng tin chữ ký, sau ghi lại ngày gởi cho thực thể B, kèm theo thông tin xác nhận trọng tài Sự xuất trọng tài quy trình đảm bảo thực thể A khơng phủ nhận thơng tin gởi 2.3.2 Chuẩn chữ ký DSS - DSS (Digital Signature Standard) chuẩn chữ ký số, chuẩn hóa năm 1991, sửa đổi năm 1993 1996, sau mở rộng vào năm 2000 DSS sử dụng hàm băm SHA thuật toán tạo chữ ký DSA (Digital Signature Algorithm) DSS thuộc loại chữ ký ngẫu nhiên không phục hồi - Hình 2.6 so sánh cấu trúc DSS so với phương thức xác thực thông tin sử dụng mật mã bất đối xứng RSA - Trong thuật toán xác thực thông tin dùng mật mã RSA, thông tin gốc đưa vào hàm băm SHA để tạo mã băm (tức message digest) có kích thước cố định Mã băm sau mã hóa (bằng thuật tốn RSA) dùng khóa riêng thực 21 thể tạo thơng tin (phía gởi) Kết phép mã hóa gắn vào thơng tin gốc gởi Phía thu nhận thông tin, tách phần mã băm khỏi thông tin gốc giải mã khóa cơng khai phía gởi Chú ý khóa cơng khai thông tin công bố rộng rãi cho thực thể có quan tâm Đồng thời, thơng tin gốc đưa vào hàm băm để tính mã băm, sau đem so sánh với mã băm vừa nhận Nếu hai mã giống thơng tin vừa nhận chấp nhận thông tin hợp lệ - Họat động DSS bao gồm việc đưa thông tin gốc vào hàm băm để tạo mã băm có kích thước cố định Tuy nhiên, mã băm khơng mã hóa trực tiếp giải thuật mã hóa mà sử dụng làm ngõ vào hàm tạo chữ ký S (Signature function) Các thông tin đưa vào hàm tạo chữ ký bao gồm: + Mã băm thông tin gốc + Một số ngẫu nhiên k + Khóa riêng người ký (PRa) + Khóa cơng khai nhóm thực thể liên quan đến giao dịch chữ ký (PUG) Hình 2.6 Xác thực thơng tin RSA dùng chữ ký số DSS 22 CHƯƠNG XÂY DỰNG ỨNG DỤNG 3.1 Xác định mơ hình Mơ hình chữ ký số RSA hệ thống quản lý: Quá trình gửi nhận tệp văn phục vụ quản lý dựa vào thuật tốn SHA-1 thuật tốn RSA Hình 3.1 Mơ hình chữ ký số - Qn trình ký gửi tệp văn + Từ file cần gửi ban đầu, chương trình sử dụng hàm băm SHA-1 để mã hóa chuỗi ký tự dài 128 bit Chương trình sử dụng thuật tốn RSA để mã hóa giá trị băm thu với khóa bí mật người gửi để nhận giá trị gọi chữ ký điện tử Kết hợp file ban đầu với chữ ký điễn tử thành thông điệp ký gửi cho người nhận - Quá trình nhận tệp văn + Sau người nhận nhận văn Hệ thống tách thông điệp ký thành file văn chữ ký điện tử Đến giai đoạn có q trình kiểm tra: + Kiểm tra file văn có người gửi hay khơng Sử dụng thuật tốn RSA để giải mã chữ ký điện tử khóa cơng khai người gửi Nếu giải mã khơng file file nhận không người gửi Nếu giải mã 23 thành cơng file nhận người gửi ta nhận giá trị băm + Kiểm tra file văn có bị thay đổi hay khơng: Từ file văn ban đầu ta sử dụng hàm băm SHA-1 mã hóa thành giá trị băm Kiểm tra giá trị băm giá trị băm có giống hay khơng? Nếu giống file nhận tồn vẹn khơng bị thay đổi, ngược lại file văn bị thay đổi 3.2 Cài đặt 3.2.1 Modul tạo khóa - Nhiệm vụ modul tạo cặp khóa cơng khai khóa bí mật cho người dùng Mặc định chương trình tạo cặp khóa có độ dài 1024 bit Hình 3.2 Giao diện modul tạo cặp khóa 24 3.2.2 Modul tạo chữ ký cho file văn - Nhiệm vụ modul tạo file chữ ký (*sig) có tên trùng với tên file chọn để ký Người dùng muốn sử dụng chứng phải thơng qua việc tạo khóa Hình 3.3 Giao diện modul tạo chữ ký số 3.2.3 Modul kiểm tra xác thực - Đầu vào modul file cần xác thực + với chữ ký ( thơng điệp) Nhiệm vụ modul kiểm tra tính đắn chữ ký số Hình 3.4 Giao diện xác thực chữ ký số 25 TÀI LIỆU THAM KHẢO An tồn Bảo mật thơng tin – Trần Minh Văn Bảo mật hệ thống thông tin – Lê Phúc Cryptography and Network Security Principles and Practices - William Stallings 26