NGHIÊN CỨU CÁC LƯỢC ĐỒ CHỮ KÝ SỐ XEDDSA VÀ VXEDDSA Hầu hết các lược đồ chữ ký số hiện nay đều dựa trên tính khó của các bài toán: phân tích một số nguyên lớn ra các thừa số nguyên tố, bài toán khai căn và bài toán logarit rời rạc. Thuật toán chữ ký số đầu tiên (RSA) được đề xuất và công bố bởi Ron Rivest, Adi Shamir và Len Adleman vào năm 1977 tại Viện công nghệ Massachusetts (MIT) tại Hoa Kì. Với nhu cầu ngày tăng trong việc sử dụng chữ ký số, yêu cầu với các lược đồ chữ ký số ngày càng cao. Do đó, việc nghiên cứu phát triển các lược đồ chữ ký số mới cho mục đích thiết kế chế tạo các sản phẩm, thiết bị an toàn và bảo mật thông tin luôn là vấn đề cần thiết được đặt ra. Như được các tác giả nêu trong 4, lược đồ chữ ký số EdDSA có ưu điểm độ an toàn cao, sinh khóa nhanh, việc ký nhanh, tốn ít tài nguyên. Tuy nhiên, lược đồ chữ ký số này vẫn tồn tại một số hạn chế. Do đó có một số phiên bản cải biến của lược đồ chữ ký số này như: lược đồ chữ ký số XEdDSA và VXEdDSA. Vì vậy em chọn đề tài “ Nghiên cứu các lược đồ chữ ký số XEdDSA và VXEdDSA” làm đồ án tốt nghiệp. 2. Mục tiêu nghiên cứu Tìm hiểu các lược đồ chữ ký số XEdDSA và VXEdDSA. Cài đặt chương trình mô phỏng thuật toán chữ ký số XEdDSA. 3. Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu: lược đồ chữ ký số XEdDSA và VXEdDSA. 2 Phạm vi nghiên cứu: Đề tài nghiên cứu các vấn đề chung về đường cong elliptic Edwards và chữ ký số; lược đồ chữ ký số EdDSA, XEdDSA và VXEdDSA; cài đặt chương trình mô phỏng thuật toán XEdDSA. 4. Phương pháp nghiên cứu Đề tài sử dụng các phương pháp nghiên cứu như phương pháp thống kê, phương pháp tổng hợp, phương pháp so sánh, phương pháp phân tích, kế thừa một số kết quả nghiên cứu đã có, đồng thời thu thập thông tin, tài liệu để phục vụ cho quá trình nghiên cứu. 5. Những đóng góp của đồ án Về lý thuyết: Đồ án trình bày các vấn đề trọng tâm về đường cong elliptic Edwards và Edwards xoắn như định nghĩa, luật cộng. Trình bày về lược đồ chữ ký số EdDSA, XEdDSA, VXEdDSA, sự an toàn của các lược đồ chữ ký số này. Về tính ứng dụng vào thực tiễn: Đồ án trình bày quá trình cài đặt chương trình mô phỏng thuật toán chữ ký số XEdDSA. Từ đó đánh giá được hiệu suất thực thi thuật toán chữ ký số XEdDSA so với các thuật toán chữ ký số khác. 6. Kết cấu của đồ án tốt nghiệp Nội dung của đồ án chia làm 3 chương: Chương 1: Lý thuyết đường cong elliptic. Chương này trình bày những kiến thức tổng quan về đường cong elliptic và đường cong elliptic Edwards. Chương 2: Lược đồ chữ ký số XEdDSA và VXEdDSA. Chương này sẽ giới thiệu về chữ ký số; lược đồ chữ ký số EdDSA và các phiên bản cải biến XEdDSA và VXEdDSA. Chương 3: Cài đặt chương trình mô phỏng thuật toán chữ ký số XEdDSA. Chương này dựa trên nền tảng kiến thức của hai chương trên tiến hành thực nghiệm cài đặt mô phỏng lược đồ chữ ký số XEdDSA.
ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU CÁC LƯỢC ĐỒ CHỮ KÝ SỐ XEDDSA VÀ VXEDDSA MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii CÁC KÝ KIỆU, CHỮ VIẾT TẮT v DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii LỜI MỞ ĐẦU CHƯƠNG LÝ THUYẾT ĐƯỜNG CONG ELLIPTIC 1.1 Đường cong elliptic Weierstrass 1.1.1 Các khái niệm 1.1.2 Phép toán nhóm điểm đường cong elliptic 1.2 Đường cong elliptic Edwards 1.2.1 Dạng chuẩn tắc đường cong elliptic Edwards 1.2.2 Dạng tổng quát đường cong elliptic Edwards 1.2.3 Đường cong elliptic Edwards 11 1.2.4 Phép toán nhóm hiệu đường cong elliptic Edwards 13 1.3 Đường cong elliptic Edwards xoắn 15 1.3.1 Định nghĩa đường cong elliptic Edwards xoắn 15 1.3.2 Luật cộng đường cong elliptic Edawards xoắn 15 CHƯƠNG THUẬT TOÁN CHỮ KÝ SỐ XEDDSA VÀ VXEDDSA 2.1 Tổng quan chữ ký số 17 2.1.1 Khái niệm chữ ký số 17 2.1.2 Vị trí, vai trị chữ ký số 19 2.2 Thuật toán chữ ký số EdDSA 21 2.2.1 Tổng quan thuật toán chữ ký số EdDSA 21 2.2.2 Thuật toán chữ ký số EdDSA 22 2.2.3 Thuật toán chữ ký số EdDSA đường cong Ed25519 25 2.2.4 Thuật toán chữ ký số EdDSA đường cong Ed448 31 2.3 Thuật toán chữ ký số XEdDSA VXEdDSA 36 2.3.1 Các tham số đường cong elliptic ký hiệu 36 2.3.2 Thuật toán chữ ký số XEdDSA 38 2.3.3 Thuật toán chữ ký số VXEdDSA 39 2.3.4 Thuật toán chữ ký số XEdDSA VXEdDSA đường cong Ed25519 ? 40 2.3.5 Thuật toán chữ ký số XEdDSA VXEdDSA đường cong Ed448 ? 41 2.4.1 Sự an tồn thuật tốn chữ ký số XEdDSA VXEdDSA 42 2.4.2 Một số cơng lên thuật tốn chữ ký số XEdDSA VXEdDSA 43 CHƯƠNG CÀI ĐẶT CHƯƠNG TRÌNH MƠ PHỎNG THUẬT TỐN CHỮ KÝ SỐ XEDDSA 3.1 Các mơ-đun 46 3.1.1 Mơ-đun tạo khóa 46 3.1.2 Mô-đun tạo chữ ký 47 3.1.3 Mô- đun kiểm tra chữ ký 49 3.2 Cài đặt thử nghiệmchương trình 52 3.2.1 Thử nghiệm chương trình 52 3.2.2 Hiệu thực thi thuật toán chữ ký số XEd25519 57 KẾT LUẬN 62 TÀI LIỆU THAM KHẢO 63 PHỤ LỤC 65 Viết tắt CÁC KÝ KIỆU, CHỮ VIẾT TẮT Tiếng Anh Tiếng Việt Elliptic Curve Digital Thuật toán chữ ký số đường Signature Algorithm cong elliptic Edwards Curve Digital Thuật toán chữ ký số đường Signature Algorithm cong Edwards GMP GNU Multiple Precision Bộ thư viện tính tốn số lớn RSA Ron Rivest, Adi Shamir, Thuật tốn mã hóa khóa cơng Adleman khai RSA Exchange and EdDSA Thuật tốn chữ ký số đường ECDSA EdDSA XEdDSA cong Edwards(thuật tốn trao đổi khóa đường cong Montgomery) VRF Verification Random Hàm ngẫu nhiên có khả xác Function thực VXEdDSA VRF - Exchange and Thuật toán chữ ký số đường EdDSA cong Edwards có sử dụng hàm VRF DANH MỤC BẢNG BIỂU Bảng 2.1: Các tham số thuật toán chữ ký số Ed25519 26 Bảng 2.2: Các tham số đầu vào thuật toán chữ ký số Ed448 31 Bảng 2.3: Các tham số đường cong elliptic sử dụng cho XEdDSA VXEdDSA ' 37 Bảng 2.4: Các tham số đường cong đường cong elliptic Ed25519 40 Bảng 2.5: Các tham số đường cong elliptic Ed448 41 Bảng 2.6: Các giải pháp phịng chống cơng SVA 44 Bảng 3.1: Khả tạo kiểm tra chữ ký chương trình 58 Bảng 3.2: Thời gian tạo kiểm tra chữ ký 58 Bảng 3.3: Kích thước khóa, chữ ký thời gian tạo, kiểm tra chữ ký RSA, ECDSA XED25519 60 DANH MỤC HÌNH VẼ Hình 1.1: Đường cong elliptic y2 =4x3-x Hình 1.2: Phép cộng hai điểm P+Q=R Hình 1.3: Phép nhân đơi điểm P+P=2P Hình 1.4: Đường cong Edwards x + y y = + dx y 12 2 Hình 1.5: Phép cộng điểm đường cong Edwards 13 Hình 1.6: Đường cong Edwards xoắn 10 x + y2 = + x2 y2 15 Hình 2.1: Quá trình tạo kiểm tra chữ ký 19 Hình 3.1: Lưu đồ thuật tốn tạo khóa chữ ký số XEdDSA 46 Hình 3.2: Lưu đồ thuật toán tạo chữ ký số XEdDSA 48 Hình 3.3: Lưu đồ thuật tốn kiểm tra chữ ký số XEdDSA 50 Hình 3.4: Giao diện chương trình mơ XEd25519 52 Hình 3.5: Giao diện thủ tục sinh khóa XEd25519 53 Hình 3.6: Giao diện thủ tục tạo chữ ký XEd25519 53 Hình 3.7: Giao diện thủ tục kiểm tra chữ ký XEd25519 54 Hình 3.8: Thủ tục sinh khóa XEd25519 55 Hình 3.9: Thủ tục tạo chữ ký XEd25519 .55 Hình 3.10: Thủ tục kiểm tra chữ ký (chữ ký hợp lệ) .56 Hình 3.11: Thủ tục kiểm tra chữ ký (chữ ký không hợp lệ) 57 Hình 3.12: Biểu đồ sánh thời gian tạo kiểm tra chữ ký .59 LỜI MỞ ĐẦU Tính cấp thiết đề tài Sự phát triển mạnh mẽ công nghệ thông tin viễn thông tạo điều kiện thuận lợi cho việc truyền tải thơng tin loại hình khác Tuy nhiên việc truyền tải thông tin mơi trường mạng nói chung tiềm ẩn số vấn đề như: mát liệu, giả mạo liệu Trong số trường hợp người sử dụng phát gây hậu xấu cho cá nhân tổ chức Chữ ký số đời giải pháp hiệu để đảm bảo tính xác thực tính tồn vẹn thông tin truyền mạng Hầu hết lược đồ chữ ký số dựa tính khó tốn: phân tích số ngun lớn thừa số nguyên tố, toán khai toán logarit rời rạc Thuật toán chữ ký số (RSA) đề xuất công bố Ron Rivest, Adi Shamir Len Adleman vào năm 1977 Viện công nghệ Massachusetts (MIT) Hoa Kì Với nhu cầu ngày tăng việc sử dụng chữ ký số, yêu cầu với lược đồ chữ ký số ngày cao Do đó, việc nghiên cứu - phát triển lược đồ chữ ký số cho mục đích thiết kế chế tạo sản phẩm, thiết bị an tồn bảo mật thơng tin ln vấn đề cần thiết đặt Như tác giả nêu [4], lược đồ chữ ký số EdDSA có ưu điểm độ an tồn cao, sinh khóa nhanh, việc ký nhanh, tốn tài ngun Tuy nhiên, lược đồ chữ ký số tồn số hạn chế Do có số phiên cải biến lược đồ chữ ký số như: lược đồ chữ ký số XEdDSA VXEdDSA Vì em chọn đề tài “ Nghiên cứu lược đồ chữ ký số XEdDSA VXEdDSA” làm đồ án tốt nghiệp Mục tiêu nghiên cứu - Tìm hiểu lược đồ chữ ký số XEdDSA VXEdDSA Cài đặt chương trình mơ thuật tốn chữ ký số XEdDSA Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu: lược đồ chữ ký số XEdDSA VXEdDSA - Phạm vi nghiên cứu: Đề tài nghiên cứu vấn đề chung đường cong elliptic Edwards chữ ký số; lược đồ chữ ký số EdDSA, XEdDSA VXEdDSA; cài đặt chương trình mơ thuật toán XEdDSA Phương pháp nghiên cứu Đề tài sử dụng phương pháp nghiên cứu phương pháp thống kê, phương pháp tổng hợp, phương pháp so sánh, phương pháp phân tích, kế thừa số kết nghiên cứu có, đồng thời thu thập thơng tin, tài liệu để phục vụ cho trình nghiên cứu Những đóng góp đồ án Về lý thuyết: Đồ án trình bày vấn đề trọng tâm đường cong elliptic Edwards Edwards xoắn định nghĩa, luật cộng Trình bày lược đồ chữ ký số EdDSA, XEdDSA, VXEdDSA, an toàn lược đồ chữ ký số Về tính ứng dụng vào thực tiễn: Đồ án trình bày trình cài đặt chương trình mơ thuật tốn chữ ký số XEdDSA Từ đánh giá hiệu suất thực thi thuật toán chữ ký số XEdDSA so với thuật toán chữ ký số khác Kết cấu đồ án tốt nghiệp Nội dung đồ án chia làm chương: Chương 1: Lý thuyết đường cong elliptic Chương trình bày kiến thức tổng quan đường cong elliptic đường cong elliptic Edwards Chương 2: Lược đồ chữ ký số XEdDSA VXEdDSA Chương giới thiệu chữ ký số; lược đồ chữ ký số EdDSA phiên cải biến XEdDSA VXEdDSA Chương 3: Cài đặt chương trình mơ thuật tốn chữ ký số XEdDSA Chương dựa tảng kiến thức hai chương tiến hành thực nghiệm cài đặt mô lược đồ chữ ký số XEdDSA CHƯƠNG LÝ THUYẾT ĐƯỜNG CONG ELLIPTIC 1.1 Đường cong elliptic Weierstrass 1.1.1 Các khái niệm Định nghĩa 1.1 [1]: Một đường cong elliptic dạng xạ ảnh Weierstrass đầy đủ tập tất điểm xạ ảnh (x, y, z) thoả mãn phương trình: y z + aỵxyz + ayz = x + a2x z + a4xz1 + a6z ; aỵ, a, a, a, a e K Đường 2 3 cong có điểm vô cực ro (0, 1, 0) Định nghĩa 1.2[1]: Một đường cong elliptic dạng affine Weierstrass đầy đủ trường K tập tất điểm affine (x, y) thoả mãn phương trình: y + avxy + a3y = x3 + ax2 + a4x + a; với a1,a2,a3,a4,a6 eK Đường cong có điểm vô cực, ký hiệu ro Để đơn giản phù hợp với mục đích sử dụng thực tế, ta xem xét K trường nguyên tố X\ với p số nguyên tố (p 2, 3) Khi phương trình đường cong elliptic Weierstrass rút gọn (kí hiệu E (a, b) E(F )), gọi tắt E biểu diễn phương trình: : = x + ax + b; (a,b) eF E y2 Định nghĩa 1.3[1]: Biệt thức đường cong E xác định công thức: A = -16(4a3 + 27b2)(mod p) Định nghĩa 1.4[1]: Gọi f (x) = x + ax + b - y Một điểm P(x, y) e E gọi điêm khơng kì dị có hai đạo hàm -Z— khác dx ' dy 0, điều có nghĩa hai đạo hàm điểm P coi điểm kì dị Hình 1.1 mơ tả đường cong y = 4x3 - x R Hình 1.1: Đường cong elliptic y2 =4x3-x Định nghĩa 1.5[1]: Đường cong elliptic E coi đường cong khơng kì dị tất điểm khơng kì dị Ngược lại, có điểm kì dị đường cong coi đường cong kì dị Định nghĩa 1.6 [1]: Đại lượng j - bất biến đường cong E A 0(mod p) là: j = j (E) = 1728 4a3 4a3+27b2 Định nghĩa 1.7[1]: Hai đường cong E E' xác định phương trình Weierstrass rút gọn với biến số tương ứng (x, y), (x’, y’) gọi đẳng cấu trường K tồn r, s, t e K u e K * cho thực đổi biến x = u2x'+ r; y = u3y'+ suu +1 E biến thành E\ Tính đẳng cấu quan hệ tương đương Hai đường cong đẳng cấu có giá trị j - bất biến Tuy nhiên, ta làm việc với trường khơng đóng đại số K hai đường cong Elliptic có j - bất biến biến đường cong trở thành đường cong lại nhờ hàm hữu tỉ với hệ số K Có hai giá trị đặc biệt j - bất biến là: 50 { /* Tạo chuỗi ngẫu nhiên 64 byte */ $random = gmp_randoms_bit(512); /* Tính SHA-512(a || M || Z) (mod l) , giá trị tóm lược thể số nguyên */ $random = thapnhi($random) $private = thapnhi($khoabimat); $so = thapnhi(30); $document1 = $so.$private.$thongbao.$random; $hash1 = hash('sha512$document1); $hash1 = gmp_mod(thapnhi(hexnhi($hash1)), $q); /* Tính R = r.B = hash1.B */ parse_str(mul_point($hash1, $Bx, $By, $p, $d)); $R_bin = thapnhi($mul_point_y); /* Tính SHA-512(R || A || M) (mod l), giá trị tóm lược thể số nguyên */ $document = $R_bin.$khoacongkhai.$thongbao; $hash = hash('sha512$document); $hash = gmp_mod(thapnhi(hexnhi($hash)), $q); /* Tính S = r + h.a (mod l) */ $S = gmp_add($hash1, gmp_mul($hash, $khoabimat)); $S = gmp_mod($S, $q); } 3.1.3 Mô- đun kiếm tra chữ ký Khóa cơng khai A gồm 32 octet sử dụng để kiểm tra chữ ký, chữ ký số XEd25519 (64 octet) kiểm tra theo lưu đồ thuật tốn mơ tả Hình 3.3: 51 Hình 3.3: Lưu đồ thuật tốn kiểm tra chữ ký số XEdDSA Q trình thực thơng qua hàm kiểm tra chữ ký sau: 52 Function Verify($thongbao, $chuky, $khoacongkhai) { /* Kiểm tra chữ ký */ parse_str($chuky); if($Ry >= gmp_pow(2, 55) || $S >= gmp_pow(2, 253) ) { return 0; } /* Kiểm tra tọa độ điểm A có thuộc đường cong */ $verification = checkpoint($Ax, $Ay); if ($verification == 0) { return 0; } /* Tính SHA-512(R || A || M) (mod l), giá trị tóm lược thể số nguyên */ $document = $R_bin.$khoacongkhai.$thongbao; $hash = hash('sha512$document); $hash = gmp_mod(thapnhi(hexnhi($hash)), $q); /* Kiểm tra $Rcheck = $R*/ $Rcheck1 = mul_point($S, $Bx, $By, $p, $d); parse_str($Rcheck1); $Rcheck2 = mul_point( $hash, "-$Ax", $Ay, $p, $d); parse_str($Rcheck2); $Rcheck = add_point($Rcheck1x, $Rcheck1y, ($Rcheck2x, $Rcheck2y, $p, $d); parse_str($Rcheck); if($Rcheck == $R) { return 1; } } 3.2 Cài đặt thử nghiệm chương trình 3.2.1 Thử nghiệm chương trình Cơng cụ: - Sử dụng phần mềm Adobe_Dreamweaver_CS6 để viết chương trình, ngơn ngữ lập trình lựa chọn PHP, tạo giao diện chương trình sử dụng CSS - Sử dụng chương trình tạo máy chủ web xampp hỗ trợ phiên PHP 7.2.6 cho hệ điều hành Windows để chạy chương trình 53 - Thực cài đặt lược đồ chữ ký số XEd25519 hệ điều hành Windows, với cấu hình máy CPU @ 1.80GHz, RAM 8GB, System type 64-bit Hình 3.4 giao diện chương trình mơ thuật tốn chữ ký số nên trình duyệt web có địa http://localhost/project/Xeddsa.php CHƯƠNG TRÌNH MƠ PHỎNG LƯỢC ĐỊ XEDDSA Sinh khóa Tạo kiểm tra chữ ký Đồ án tốt nghiệp - Phùng Minh Tuấn H24 - Học viện Kỳ thuật Mật mà - 2018 Hình 3.4: Giao diện chương trình mơ XEd25519 Chương trình mơ gồm hai mơ-đun: - Mơ-đun Sinh khóa: có chức tạo cặp khóa bí mật khóa cơng khai, sử dụng thủ tục ký thủ tục kiểm tra chữ ký 54 - Mô-đun Tạo kiểm tra chữ ký: bao gồm thủ tục tạo chữ ký thủ tục kiểm tra chữ ký Hình 3.5 giao diện thủ tục sinh khóa sau ấn vào Sinh khóa: Hình 3.5: Giao diện thủ tục sinh khóa XEd25519 Giao diện thủ tục sinh khóa cho thuật tốn XEd25519 u cầu nhập hai trường ID (định danh người dùng) Tên (tên người dùng) Việc nhập hai trường phân biệt cặp khóa tạo cho người dùng khác nhau, khóa người dùng thời gian khác Nếu không nhập vào hai trường có cảnh báo u cầu quay lại Hình 3.6 giao diện mô tả thủ tục tạo chữ ký XEd25519: Hình 3.6: Giao diện thủ tục tạo chữ ký XEd25519 Giao diện thủ tục tạo chữ ký XEd25519 yêu cầu phải nhập vào ba trường là: 55 - Thông báo: thông báo cần ký lên Kích thước thơng báo - Khóa bí mật: khóa riêng bí mật người ký biết - Khóa cơng khai: khóa cơng khai người ký Khơng thuật tốn chữ ký số cổ điển khác, thuật tốn XEdDSA có sử dụng khóa cơng khai q trình ký Nếu trường bị thiếu có cảnh báo quay lại Hình 3.7 giao diện thủ tục kiểm tra chữ ký XEd25519: Hình 3.7: Giao diện thủ tục kiểm tra chữ ký XEd25519 Giao diện thủ tục kiểm tra chữ ký yêu cầu nhập vào ba trường là: Thơng báo, Chữ ký, Khóa cơng khai Nếu trường nhập thiếu có cảnh báo quay lại Dưới kết việc thực tạo khóa, tạo chữ ký kiểm tra chữ ký thơng báo dạng docx Bước 1: Sinh cặp khóa bí mật khóa cơng khai Hình 3.8 kết cặp khóa tạo thủ tục tạo khóa cho thuật tốn XEd25519: THỦ TỤC SINH KHĨA CHO XEDDSA Khóa sinh thành cơng! Loại khóa Giá trị File lưu khoa Khóa bí mật 987e9e3đ4cl85280edfb5d52834d27488646fá28108026dfbfead99d36916cle IDA-21 -6-2018-Privatekev.txt Khóa cịng khai 6052e352ef037fd43e05eaf63838343d74084b7a78477ad5759b55fe835e0958 IDA-21-6-2018-Publickev.txt 56 Thời gian sinh khóa: 29.001 ms Thốt Hình 3.8: Thủ tục sinh khóa XEd25519 Sau nhập trường yêu cầu nhấn vào “Sinh khóa”, kết sinh cặp khóa bí mật khóa cơng khai Hai giá trị hai loại khóa lưu vào hai file định dạng txt khác hai thư mục khác Hình 3.9 chữ ký tạo sau thủ tục tạo chữ ký thuật tốn XEd25519: Hình 3.9: Thủ tục tạo chữ ký XEd25519 Sau nhập vào trường yêu cầu nhấn vào “Tạo chữ ký”, kết trả chữ ký thông báo cần ký Chữ ký ghi vào file định dạng doc Trong thư mục lưu chữ ký có chứa thơng báo 57 Hình 3.10 mơ tả kết kiểm tra cho chữ ký hợp lệ: Hình 3.10: Thủ tục kiểm tra chữ ký (chữ ký hợp lệ) Nếu chữ ký hợp lệ xuất dấu hiệu báo “đúng” bảng ID tên người tạo chữ ký lên thơng báo Cịn chữ ký khơng hợp lệ xuất dấu hiệu báo “sai” hình dưới: Hình 3.11 mơ tả kết kiểm tra cho chữ ký không hợp lệ: 58 THỦ TỤC KIỂM TRA CHỨ KÝ XEDDSA Chừ ký không hợp lệ! Chữ ký khơng phù hợp với thịng báo Thịi gian kiểm tra: 55.003 ms Thốt Hình 3.11: Thủ tục kiểm tra chữ ký (chữ ký không hợp lệ) Chữ ký không phù hợp với thông báo vài trường hợp sau xảy ra: - Việc chọn khóa cơng khai khơng với thơng báo - Khóa cơng khai bị thay đổi - Thông báo bị thay đổi 3.2.2 Hiệu thực thi thuật toán chữ ký sốXEd25519 3.2.2.1 So sánh thời gian ký kiểm tra chữ ký thuật toán XEd25519 Để kiểm tra khả thực chương trình, ta tiến hành ký kiểm tra chữ ký file định dạng khác nhau, sau tiến hành thử nghiệm ta có kết Bảng 3.1 59 Bảng 3.1: Khả tạo kiểm tra chữ ký chương trình STT Định dạng file Thực tạo kiểm tra chữ ký docx Có thể thực txt Có thể thực xlsx Có thể thực pdf Có thể thực jpg Có thể thực rar mp4 Có thể thực Có thể thực Sau thực chương trình với tất liệu ban đầu ta thu kết Bảng 3.2 Đơn vị thời gian mili giây, tập tin văn với dung lượng tăng dần Bảng 3.2: Thời gian tạo kiểm tra chữ ký Thời gian tạo chữ ký số Thời gian kiểm tra chữ Dung lượng tập tin XEd25519 ký số XEd25519 (ms) (ms) 32 KB 34,780 46,803 128 KB 38,002 51,203 512 KB 52,003 57,803 MB 114,81 92,805 MB 349,02 217,03 32 MB 1307,41 695,44 128 MB 4942,6 2663,6 Sử dụng liệu thu để xây dựng biểu đồ so sánh thời gian tạo kiểm tra chữ ký XEd25519 60 6000 5000 4000 3000 2000 1000 < Ký < Kiểm tra Hình 3.12: Biểu đồ sánh thời gian tạo kiểm tra chữ ký Từ kết từ bảng trên, ln có chênh lệch thời gian tạo chữ ký thời gian kiểm tra chữ ký Với kích thước thơng báo thấp, thời gian hai thủ tục xấp xỉ nhau, với kích thước thơng báo tăng dần thời gian chêch lệch lớn Cụ thể thời gian tạo chữ ký lớn thời gian kiểm tra chữ ký dần tiến tới xấp xỉ gấp lần Nguyên nhân việc thủ tục tạo chữ ký có phép nhân điểm phép tính hàm băm SHA-512, thủ tục kiểm tra chữ ký có phép nhân phép tính hàm băm SHA-512 3.2.2.2 So sánh thuật toán XEd25519 với số thuật toán chữ ký số khác Mỗi lược đồ chữ ký số có đặc điểm riêng Phần đưa khác biệt XEdDSA so với số lược đồ chữ ký số sử dụng phổ biến RSA, ECDSA Chúng ta lựa chọn tập tin văn có dung lượng 32KB, tiến hành so sánh thời gian ký kiểm tra chữ ký thuật toán chữ ký số RSA, ECDSA XEd25519 Đơn vị thời gian giây Kết thu Bảng 3.3 Bảng 3.3: Kích thước khóa, chữ ký thời gian tạo, kiểm tra chữ ký RSA, ECDSA XED25519 61 Thuật tốn ký Kích thước Kích thước Thời gian ký Thời gian kiểm khóa (bit) chữ ký (bit) RSA-1024 1024 1024 0,2089 0,1592 RSA-2048 2048 2048 0,5222 0,3537 ECDSA 512 512 0,1124 0,1411 256 512 0,0347 0,0468 g ây) ( i tra (giây) P-256 XEd25519 Trong bảng 3.3 so sánh đề cập đến thuật toán chữ ký số RSA1024, RSA-2048, ECDSA P-256, XEd25519 Ta có số nhận xét sau: Kích thước khóa Kích thước khóa lược đồ chữ ký trình bày Bảng 3.3 Khóa RSA-2048 có kích thước lần khóa RSA-1024, gấp lần khóa P256 gấp lần kích thước khóa XEd25519 Kích thước chữ ký Bảng 3.3 kích thước chữ ký thuật tốn ký số Kích thước chữ ký RSA-2048 lần kích thước chữ ký RSA-1024, gấp lần Ed25519 P-256 Lưu ý rằng, kích thước chữ ký RSA với kích thước khóa, lược đồ XEd25519 kích thước chữ ký lần kích thước khóa Tốc độ tạo chữ ký XEd25519 có khả tạo chữ ký nhanh 6,02 lần so với RSA1024; 15,05 lần so với RSA-2048 3,24 lần so với ECDSA P-256 Tốc độ kiểm tra chữ ký Trong RSA, số mũ công khai e thường chọn số nhỏ, số mũ bí mật có kích thước 2048 bit Số mũ cơng khai ln số nguyên có trọng số Hamming nhỏ giúp tăng tốc cho q trình lũy thừa Do việc xác minh chữ ký RSA tốn thời gian việc tạo chữ ký ECDSA XEdDSA khơng có thuận lợi hệ mật khơng dựa phép lũy thừa 62 Theo Bảng 3.3, thuật tốn XEd25519 có khả băng thực kiểm tra nhanh nhất, nhanh khoảng 3,4 lần so với RSA-1024 7,56 lần so với RSA2048 Hiệu tính tốn Sự phức tạp tính tốn lược đồ XEdDSA thấp so với ECDSA Vì trình ký, phép toán đáng ý phép nhân điểm vô hướng phép nhân theo modulo l ECDSA yêu cầu phép nhân điểm vô hướng cho trình ký Tuy nhiên, ECDSA cần có phép nhân phép nghịch đảo mudulo l Đối với việc kiểm tra chữ ký, lược đồ XEdDSA yêu cầu phép nhân vô hướng kiểm tra điểm R ECDSA cần phép toán sử dụng thêm phép nghịch đảo hai phép nhân theo modulo n Kết luận chương: Dựa vào kiến thức lý thuyết tìm hiểu hai chương trước, chương trình bày q trình cài đặt chương trình mơ lược đồ XEd25519 Tiến hành thực nghiệm chương trình cài đặt với file có dung lượng định dạng khác đồng thời so sánh, đánh giá tốc độ thực thi so với chương trình ký số khác 63 KẾT LUẬN > Tìm hiểu lý thuyết đường cong elliptic Weierstrass Edwards xoắn, kiến thức chung chữ ký số > Tìm hiểu, nghiên cứu lược đồ chữ ký số EdDSA, XEdDSA VXEdDSA tham số miền, công lên lược đồ xem xét an toàn lược đồ chữ ký > Đã thực cài đặt chương trình mô lược đồ chữ ký số XEdDSA ngôn ngữ lập trình PHP cơng cụ lập trình Adobe_Dreamweaver_CS6 > Đánh giá hiệu chương trình ký số XEd25519 qua việc so sánh thời gian thực với nhiều định dạng liệu, so sánh thời gian thực với chương trình ký số RSA ECDSA > Tìm hiểu, nghiên cứu chuyên sâu công lên lược đồ > Thực mô lược đồ chữ ký số XEdDSA VXEdDSA môi trường ngơn ngữ lập trình khác để có hiệu suất thực tốt > Triển khai cài đặt lược đồ phần cứng nhằm tăng hiệu thực phục vụ cho số ứng dụng quan trọng TÀI LIỆU THAM KHẢO [1] Rodrigo Abarzúa, Santi Martínez, Valeria Mendoza, Same Value Analysis on Edwards Curves, https://eprint.iacr.org/2015/731.pdf, 2015 [2] Emilie Menard Barnard, Tutorial of Twisted Edwards Curves in Elliptic Curve Cryptography, https://koclab.cs.ucsb.edu/teaching/ecc / /Barnard-Paper.pdf, 2015 [3] Daniel J Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang, High-speed high-security signatures, Journal of Cryptographic Engineering, pp 77-89, 2012 [4] Daniel J.Bernstein, Peter Birkner , Marc Joye, Tanja Lange, Christiane Peters, Twisted Edwards Curves, Progress in Cryptology AFRICACRYPT 2008, vol 5023, pp 389-405, Springer, 2008 64 [5] Daniel J.Bernstein, Tanja Lange, Faster addition and doubling on elliptic curves In: ASIACRYPT 2007, vol 4833 of LNCS, pp 29-50, Springer, 2007 [6] Daniel J.Bernstein, Tanja Lange, Inverted Edwards coordinates In: AAECC-17, vol 4851 of LNCS, pp 20-27, Springer, 2007 [7] Daniel J Bernstein, S Josefsson, T Lange, P Schwabe, B.-Y Yang, EdDSA for more curves, https://eprint.iacr.org/2015/677.pdf, 2015 [8] Harold M Ewards, A NORMAL FORM FOR ELLIPTIC CURVES Bulleitin of the AMS 44(3), vol 44, pp 393-422, 2007 [9] Derrel Hankerson, Alfred Menezes, Scott Vanstone, Guide to Elliptic Curve Cryptography, Springer, 2004 [10] Christian Hanser, New Trends in Elliptic Curve Cryptography Institute for Applied Information Processing and Communications, 2010 [11] S Josefsson, Edwards-Curve Digital Signature Algorithm (EdDSA), RFC 8032, 2017 [12] A Langley, M Hamburg, and S Turner, Elliptic Curves for Security, RFC 7748, 2016 [13] Trevor Perrin, The XEdDSA and VXEdDSA Signature Schemes, https://signal.org/docs/specifications/xeddsa/, 2016 [14] Niels Samwel, Lejla Batina, Guido Bertoni, Joan Daemen, Ruggero Susella, Breaking Ed25519 in WolfSSL, https: //eprint.iacr.org/2017/985 pdf, 2017 [15] C P Schnorr, Efficient Signature Generation by Smart Cards, Journal of Cryptology, 1991