Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
441,33 KB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP Tìm hiểu, thực thi lược đồ chia sẻ bí mật Sharmir kết hợp chuẩn ký số ECDSA Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Lê Thế Công Lớp: AT14G Người hướng dẫn : TS Nguyễn Mạnh Hợp Cục Chứng thực số Bảo mật thông tin - BCY Hà Nội, 2022 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP Tìm hiểu, thực thi lược đồ chia sẻ bí mật Sharmir kết hợp chuẩn ký số ECDSA Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Lê Thế Công Lớp: AT14G Người hướng dẫn : TS Nguyễn Mạnh Hợp Cục Chứng thực số Bảo mật thông tin - BCY Hà Nội, 2022 MỤC LỤC Chương Giới thiệu chung hệ mật RSA 1.1 Lịch sử đời RSA 1.2 Hoạt động thuật tốn RSA 1.2.1 Mơ tả sơ lược 1.2.2 Tạo khóa 1.2.3 Mã hóa 1.2.4 Giải mã 1.2.5 Ví dụ 1.3 Tạo chữ ký số cho văn 1.4 Vấn đề an toàn RSA 1.5 Các vấn đề đặt thực tế 1.5.1 Q trình tạo khóa 1.5.2 Phân phối khóa 1.5.3 Tấn công dựa thời gian 1.6 Sự cần thiết việc chuyển đổi rõ 1.7 Kết luận chương Chương Chuyển đổi rõ theo PKCS #1 v1.5 2.1 Lược đồ chuyển đổi rõ theo PKCS #1 v1.5 2.1.1 Chuyển đổi rõ theo PKCS #1 v1.5 2.1.2 Giải chuyên đổi rõ theo PKCS #1 v1.5 2.2 Hỗ trợ lược đồ chuyển đổi rõ PKCS #1 v1.5 phiên chuẩn mật mã RSA 2.3 Kết luận chương Chương Lược đồ chuyển đổi rõ OAEP 3.1 Mô tả chung lược đồ chuyển đổi rõ OAEP 3.1.1 Chuyển đổi rõ theo lược đồ OAEP 3.1.2 Giải chuyển đổi rõ theo lược đồ OAEP 3.1.3 Sai lầm cách hiểu OAEP 3.2 Áp dụng lược đồ OAEP vào hệ mật RSA 3.2.1 Chuyển đổi rõ theo lược đồ OAEP 3.2.2 Giải chuyển đổi rõ theo OAEP 3.2.3 Hàm băm Hash 3.2.4 Hàm sinh mặt nạ MGF 3.2.5 Tham số P 3.3 Sự điều chỉnh lược đồ OAEP qua phiên khác chuẩn mật mã RSA 3.4 Kết luận chương Chương Xây dựng chương trình minh họa hoạt động lược đồ chuyển đổi rõ 4.1 Yêu cầu chương trình 4.2 Lựa chọn cơng cụ lập trình 4.3 Tính giá trị băm P 4.4 Giới thiệu chương trình 4.5 Kết luận chương Kết luận Tài liệu tham khảo Phụ lục || Phép ||X|| Độ dà ⊕ Phép Số ng Số ng DB Data EM Enco EME Enco I2OSP Integ MGF Mask OAEP Optim PKCS Publi PS Padd RFC Requ RSAES RSA DANH MỤC HÌNH VẼ Hình 2.1 Giải chuyển đổi rõ theo PKCS #1 v1.5 Hình 3.1 Chuyển đổi rõ theo lược đồ OAEP Hình 3.2 Giải chuyển đổi rõ theo lược đồ OAEP Hình 3.3 Biểu diễn OAEP khơng Hình 3.4 Chuyển đổi rõ theo lược đồ OAEP PKCS #1 v2.0 Hình 3.5 Giải chuyển đổi rõ theo lược đồ OAEP PKCS #1 v2.0 Hình 4.1 Kết chuyển đổi chuỗi rỗng trước băm SHA1 Hình 4.2 Giao diện chương trình chuyển đổi rõ Hình 4.3 Giao diện chương trình giải chuyển đổi rõ Hình 4.4 Thơng báo lỗi chuỗi M chứa kí tự khơng hợp lệ Hình 4.5 Thơng báo lỗi chuỗi M dài DANH MỤC BẢNG Bảng 3.1 Chuyển đổi rõ theo lược đồ OAEP PKCS #1 v2.0 Bảng 3.2 Giải chuyển đổi rõ theo lược đồ OAEP PKCS #1 v2.0 Bảng 3.3 Hàm sinh mặt nạ MGF1 Bảng 3.4 Hàm chuyển đổi số nguyên thành chuỗi octet I2OSP Bảng 3.5 Chuyển đổi rõ theo lược đồ OAEP PKCS #1 v2.1 LỜI CẢM ƠN Trong trình thực đồ án tốt nghiệp này, tơi nhận giúp đỡ tận tình cán hướng dẫn TS Nguyễn Mạnh Hợp – Giảng viên Khoa An tồn thơng tin Học viện Kỹ thuật Mật mã, quan tâm sâu sát cán Hệ quản lý học viên quốc tế, động viên người thân bạn bè Xin cảm ơn tất người tạo điều kiện tốt để tơi hồn thành đồ án tốt nghiệp này! SINH VIÊN THỰC HIỆN ĐỒ ÁN Lê Thế Công LỜI NÓI ĐẦU Trong sống thường ngày, việc giữ bí mật thơng tin quan trọng việc cần thiết, đặc biệt thơng tin có ảnh hưởng tới phát triển tổ chức, công ty, an ninh quốc gia, đòi hỏi người tham gia giữ bí mật phải thật tin tưởng lẫn nhau, tin tưởng định Nhưng thực tế, tin tưởng đảm bảo, cần người lộ bí mật tồn thông tin quan trọng bị lộ, gây ảnh hưởng vô to lớn Nhất mà khoa học kỹ thuật ngày phát triển mạnh mẽ, phương tiện truyền thơng ngày phổ biến, việc đảm bảo thông tin quan trọng giữ bí mật ln vấn đề nóng nhiều người quan tâm Lược đồ chia sẻ bí mật khơng phải lĩnh vực mẻ bảo mật an tồn thơng tin, hứa hẹn mang đến nhiều ứng dụng thực tiễn vô mẻ lĩnh vực cần đảm bảo giữ bí mật Chính vậy, đồ án xin lựa chọn đề tài: “Tìm hiểu, thực thi lược đồ chia sẻ bí mật Sharmir kết hợp chuẩn ký số ECDSA” để làm đồ án tốt nghiệp Đồ án thực nhằm mục đích tìm hiểu vấn đề an toàn hệ mật RSA Mục tiêu đặt thực đồ án là: - Tổng quan chia sẻ bí mật - Lược đồ chia sẻ bí mật Shamir kết hợp chuẩn ký số ECDSA - Xây dựng chương trình thực thi lược đồ chia sẻ bí mật Shamir kêt hợp chuẩn ECDSA Sau thời gian khoảng ba tháng thực đồ án, mục tiêu đạt Tuy nhiên mật mã lĩnh vực khoa học phức tạp, thời gian thực đồ án tương đối ngắn nên chắn không tránh khỏi thiếu sót Rất mong góp ý thầy cô, bạn học viên để đồ án hoàn thiện SINH VIÊN THỰC HIỆN ĐỒ ÁN Lê Thế Cơng 10 khai có sử dụng nguồn ngẫu nhiên có chất lượng đủ cao hay khơng Có thể biến DSA ECDSA thành sơ đồ xác định cách sử dụng quy trình xác định để tạo giá trị “ngẫu nhiên” k Q trình phải đáp ứng số đặc điểm mật mã để trì thuộc tính kiểm chứng mong đợi từ sơ đồ chữ ký; cụ thể, khơng biết khóa riêng chữ ký, ánh xạ từ thông điệp đầu vào đến giá trị k tương ứng phải phân biệt mặt tính tốn với chức chọn ngẫu nhiên thống (từ thông báo đến tập hợp giá trị k có thể) trả Các tính cần đáp ứng sau: * Chữ ký phải tương thích hồn tồn với DSA ECDSA đơn giản Các thực thể xác minh chữ ký khơng cần phải thay đổi chí nhận thức trình sử dụng để tạo k * Tạo cặp khóa khơng bị thay đổi Các khóa riêng có sử dụng với DSA ECDSA xác định * Sử dụng DSA ECDSA xác định không yêu cầu lưu trữ hem giá trị bí mật cơng khai * DSA ECDSA áp dụng đầu vào DSA ECDSA đơn giản, cụ thể giá trị băm tính thơng điệp ký với hàm băm bảo mật mật mã Một vài khái niệm liên quan đến ECDSA: Khóa riêng: Một số bí mật, biết đến với người tạo ang Khóa riêng số tạo ngẫu nhiên Khóa chung: Một số tương ứng với khóa riêng, khơng cần giữ bí mật Khóa cơng khai tính từ khóa riêng, khơng phải ngược lại Khóa cơng khai sử dụng để xác định xem chữ ký có phải ang hay khơng (nói cách khác, tạo khóa thích hợp) mà khơng u cầu khóa riêng phải tiết lộ Chữ ký: Một số chứng minh hoạt động ký kết diễn Một chữ ký tạo từ hàm băm cộng với khóa riêng Chữ ký hai số gọi r s Với khóa chung, thuật toán ECDSA sử dụng chữ ký để xác định ban đầu tạo từ hàm băm khóa riêng mà khơng cần biết khóa riêng Chữ ký kết có độ dài 73, 72 71 byte (với xác suất xấp xỉ 25%, 50% 25% - kích thước chí nhỏ mức với xác suất giảm theo cấp số nhân) Để ứng dụng thuật toán tạo chữ ký số cần đáp ứng số yêu cầu sau: Tối ưu thuật toán ký số; tối ưu kích thước liệu (tối ưu trường liệu chứng thư số) lưu thiết bị di động liệu truyền mạng di động; tối ưu hóa giao thức quản lý chứng thư số; tối ưu lược đồ kiểm tra chứng thư số Với dịch vụ chứng thực chữ ký số, việc tính tốn tạo cặp khóa cơng khai – bí mật, ký số xác thực chữ ký số thiết bị di động khơng thể thiếu.Thuật tốn mã hóa khóa cơng khai dựa vào thuật tốn RSA lựa chọn cho thuật toán ký số Tuy nhiên, việc tạo cặp khóa dựa thuật tốn RSA thiết bị di động tốn nhiều thời gian xảy thiếu nhớ hiệu suất CPU nhỏ Do đó, cần có thuật tốn phù hợp để tính tốn tạo cặp khóa sử dụng cho thiết bị ứng dụng Thuật toán ECDSA: Thuật toán tạo chữ ký số có ưu điểm kích thước khóa nhỏ dựa vào độ khó tốn logarit rời rạc đường cong elliptic (ECDLP) ECDSA cần thời gian để tạo cặp khóa cơng khai thiết bị di động thuật tốn RSA Vì kích thước khóa ECDSA 256 bit, nhỏ RSA 2048-bit nên kích thước chứng thư số giảm So với RSA, việc triển khai ECDSA có hiệu sau: ang tốc độ, u cầu khả tính tốn thấp hơn, tiết kiệm nhớ, tiết kiệm ang thông đường truyền, ang hiệu lưu trữ, tiết kiệm lượng Như vậy, với ECDSA, độ dài khóa 256-bit, tương đương với RSA độ dài 2048-bit, tốn thời gian để sinh cặp khóa cơng khai thiết bị di động so với sử dụng RSA Hơn nữa, với việc sử dụng khóa ECDSA 256-bit, kích cỡ chứng thư số giảm 2.2 Lược đồ chia sẻ bí mật Shamir kết hợp chuẩn ký số ECDSA 2.2.1 Lược đồ chia sẻ bí mật Shamir Ý tưởng sơ đồ ● Trung tâm chia bí mật thành nphần, cần tối thiểu k phần để khơi phục lại bí mật (0> 4)]); Result.Append(HexAlphabet[(int)(B & 0xF)]); } return Result.ToString(); } public static bool IsValidHexString(String st) { for (int i = 0; i < st.Length; i++) { if (st[i] >= '0' && st[i] = 'A' && st[i] = 'a' && st[i]