Báo Cáo Tiểu Luận Cuối Kì Mm Và Atttchương Trình Thực Hiện Sơ Đồ Chữ Ký Trên Đường Cong Elliptic -Ecdsa.pdf

14 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo Cáo Tiểu Luận Cuối Kì Mm Và Atttchương Trình Thực Hiện Sơ Đồ Chữ Ký Trên Đường Cong Elliptic -Ecdsa.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Họ và tên: Đỗ Hoàng HàMã sinh viên: 20021341

CHƯƠNG TRÌNH THỰC HIỆN SƠ ĐỒ CHỮ KÝTRÊN ĐƯỜNG CONG ELLIPTIC

-ECDSA-BÁO CÁO TIỂU LUẬN CUỐI KÌ MÔN MẬT MÃ VÀ AN TOÀN THÔNG TIN

Lớp: INT3230E 40Giảng viên: Lê Phê Đô

Trang 2

HÀ NỘI - 2022

Trang 3

Mục lục

1.ECDSA là gì? 4

2.Thế mạnh của ECDSA 6

3.Thuật toán chữ ký số trên đường cong Elliptic 7

a.Tạo cặp khóa dùng trong ECDSA 8

b.Tạo chữ ký bằng ECDSA 8

c.Xác thực chữ ký bằng ECDSA 8

4.Tính an toàn của ECDSA 8

6.Chương trình thực hiện sơ đồ chữ ký ECDSA 9

7.Kết luận 13

Trang 4

Mở đầu

Ngày nay, sự phát triển của khoa học công nghệ thông tin và truyền thông đã làm cho việc trao đổi, học hỏi thông tin trở nên không còn bị ảnh hưởng quá nhiều bởi khoảng cách về địa lý nữa Nhưng khi việc trao đổi thông tin trong một môi trường mở như thế lại là điều kiện thuận lợi cho các kẻ phá hoại có thể dễ dàng đánh cắp và thay đổi thông tin Chính vì vậy, yêu cầu đặt ra khi trao đổi thông tin trong môi trường mở như thế đó là phải có tính an toàn và xác thực.

Sự ra đời của các hệ mật mã hóa chính là nhằm đảm bảo an toàn thông tin trong quá trình trao đổi, nhất là sự ra đời của các hệ mật mã hóa công khai đã tạo ra bước đột phá trong việc xác thực thông tin Diffie và Hellman chính là những người đi tiên phong trong lĩnh vực mật mã khóa công khai với sự ra đời của thuật toán trao đổi khóa Sau đó là sự ra đời của hàng loạt các hệ mật mã hóa khác như RSA, Elgamal, ECC Và các hệ mật này đóng vai trò quan trọng trong thuật toán chữ ký số nhằm đảm bảo an toàn và tính xác thực của thông tin.

Trong các hệ mật mã hóa khóa công khai thì hệ mật đường cong Elliptic (ECC) được cho là một hệ mật có độ bảo mật cao và an toàn hơn nhiều so với các thuật toán mật mã hóa khác Nó được ứng dụng trong rất nhiều lĩnh vực và được sử dụng nhiều nơi trên thế giới.

Trang 5

1 ECDSA là gì?

Thuật toán chữ ký số Elliptic Curve lần đầu tiên được đề xuất vào năm 1992 bởi Scott Vanstone trong phản hồi đề xuất của NIST về DSS Sau đó, nó đã được chấp nhận vào năm 1998 như là một tiêu chuẩn ISO (ISO 14888-3), và như là một tiêu chuẩn ANSI (ANSI X9.62) vào năm 1999, và như là một tiêu chuẩn của IEEE (IEEE 1363-2000) và như một tiêu chuẩn NIST (Trin 186- 2) vào năm 2000.

ECDSA là viết tắt của Elliptic Curve Digital Signature Algorithm - thuật toán sinh chữ ký số dựa trên đường cong Elliptic, với công thức toán học là:

Hình 1: Ảnh minh họa đường cong Elliptic

Trên đường cong Elliptic tồn tại 2 phép toán đó là phép cộng và phép nhân.

Phép cộng: Ta có 2 điểm P và Q như hình bên dưới, kẻ P với Q và cắt đường cong được

điểm R lấy đối xứng của R qua trục Ox ta được kết quả của phép cộng

Trang 6

Hình 2: Ảnh minh họa phép cộng trên đường cong Elliptic

Phép nhân: Bản chất của phép nhân là đi thực hiện phép cộng nhiều lần Như hình bên

dưới, đầu tiên có điểm P lấy tiếp tuyến cắt đường cong tại -2P đối xứng qua Ox ta được 2P, tiếp tục thực hiện 1 lần nữa nối P và 2P và lấy đối xứng ta sẽ được 3P.

Hình 3: Ảnh minh họa phép nhân trên đường cong Elliptic

Trang 7

Do cách tính toán trên, ta có thể dễ dàng tính toán được phép nhân khi đã biết 3 và P như trên hình vẽ, nhưng hoàn toàn không thể tính toán được theo chiều ngược lại Điều này giúp cho khóa bí mật được an toàn hơn khi áp dụng phép nhân để tạo cặp khóa ECDSA.

2 Thế mạnh của ECDSA

Trong lĩnh vực chữ ký số, thuật toán ECDSA được đánh giá là một trong những thuật toán mã hóa mạnh nhất, dù sinh sau đẻ muộn nhưng ECDSA được dự đoán có thể thay thế cho RSA – thuật toán phổ biến hiện nay

Độ dài lưu khóa ngắn

- Mức độ bảo mật ở đây được định lượng bởi số bit khóa tiêu chuẩn trên lý thuyết cần sử dụng để đảm bảo độ bảo mật của ‘n’ bit.

- Độ dài khóa công khai cũng được đo bằng bit, nhưng nó là một khái niệm hoàn toàn khác, đề cập đến độ dài vật lý của chìa khóa.

Tiêu tốn ít tài nguyên trên hệ thống

Như bảng trên, có thể thấy được mặc dù cùng một mức độ bảo mật nhưng độ dài của khóa sử dụng thuật toán ECDSA lại nhỏ hơn rất nhiều so với khóa sử dụng thuật toán RSA Đối với các doanh nghiệp lớn, họ cần lưu trữ lại rất nhiều khóa, khi đó đòi hỏi doanh nghiệp cần có đủ nguồn lực về hạ tầng để đáp ứng nhu cầu lưu trữ trên Giả dụ, có 1 thiết bị lưu trữ với dung lượng 2048bit, nếu sử dụng RSA, ta chỉ có thể lưu trữ được 1 khóa duy nhất, còn đối với ECDSA, ta có thể lưu tới 9 khóa cùng mức độ bảo mật, mở rộng không gian lưu trữ gấp 9 lần và còn tiết kiệm được chi phí.

Rút ngắn thời gian ký số

Đối với thuật toán ECDSA, quá trình mã hóa và giải mã được rút ngắn, đồng thời cũng giảm bớt năng lượng cần sử dụng trong quá trình, hơn hẳn so với việc sử dụng thuật toán RSA Cụ thể, khóa của ECDSA nhỏ, nên việc tạo chữ ký số sẽ nhanh hơn, giảm tải chu kỳ xử lý của CPU, không chỉ vậy, với việc sử dụng khóa của thuật toán ECDSA, chứng

Trang 8

chỉ an toàn sẽ nhỏ và ít dữ liệu hơn, điều này hỗ trợ đẩy nhanh quá trình kết nối, cải thiện tốc độ internet.

Tăng cường độ bảo mật

ECDSA sử dụng các thuật toán phức tạp trên đường cong elliptic vào các quá trình tạo khóa, mã hóa và giải mã, giúp cho thông tin được tăng tính bảo mật, làm hacker khó khăn khi đánh cắp thông tin và hầu như là không thể hack được Điều này làm cho ECDSA trở thành thuật toán bảo mật mạnh mẽ.

Dễ dàng thấy được thuật toán ECDSA đáp ứng được các vấn đề mà RSA còn chưa được tối ưu như độ dài khóa, hiệu suất Và không có gì ngạc nhiên khi ECDSA được dự đoán là soán ngôi của RSA.

3 Thuật toán chữ ký số trên đường cong Elliptic

ECDSA thực hiện theo 3 giai đoạn:

Miền tham số của một đường cong elliptic mô tả một tả đường cong Elliptic E được xác định trên một trường hữu hạn Fp, một điểm cơ sở g ∈ E (F ) có cấp là n Các các tham sốp

nên được chọn cẩn thận để ECDLP chống lại tất cả các cuộc tấn công đã biết.

Các đường cong Elliptic được chọn bằng cách chọn (a, b) thuộc Zp* và thay vào trong phương trình Vì vậy, miền các tham số có thể được định nghĩa là p, E (a, b), g, n p

Hình 4: Hình ảnh mô tả quá trình ký ECDSA

Trang 9

a Tạo cặp khóa dùng trong ECDSA

Giả sử A là người ký trên bản rõ M Khi đó A thực hiện các bước 6 sau để tạo ra cặp khóa công khai và khóa riêng:

Chọn ngẫu nhiên 1 số nguyên d nằm trong khoảng [1, n-1] Tính Q = dG.

Khóa riêng của người gửi là d.

Khóa công khai của người gửi là tổ hợp (E (a, b), g, n, Q).p

b Tạo chữ ký bằng ECDSA

A sử dụng khóa riêng của mình để tạo chữ ký trên bản tin M bằng các bước sau: Chọn ngẫu nhiên một số nguyên k thuộc [1, n-1].

Tính kg = (x1, y1), trong đó x1 là số nguyên Tính r = x1 mod n Nếu r = 0, thì quay lại bước 1 Tính h = H (M), trong đó H là SHA-512.

Tính s = (k * (h + d * r)) mod n Nếu s = 0, thì quay lại bước 1.-1

Chữ ký của A trên bản tin M là cặp số nguyên (r, s) c Xác thực chữ ký bằng ECDSA

Người nhận B có thể xác minh tính xác thực của chữ ký của A là (r, s) trên bản tin M bằng cách thực hiện tiếp theo:

Nhận được chữ ký trên Khóa công khai (E, g, n, Q) của A Xác minh rằng các giá trị r và s nằm trong khoảng [1, n-1].

Chữ ký cho tin nhắn M chỉ được xác minh nếu r’ = r.

4 Tính an toàn của ECDSA

Khóa công khai được tạo bằng cách tính điểm Q, trong đó Q = dG Để phá vỡ khóa đường cong elip elliptic, Eve (người thám mã) có thể khám phá ra khóa bí mật d khi Q và G được công bố Bậc của đường cong Elliptic, E là số nguyên tố n, sau đó tính toán d từ dG và G sẽ mất khoảng 22n + 2 phép tính.

Ví dụ: Nếu độ dài khóa n là 192 bit (khóa nhỏ nhất kích thước mà NIST đề xuất cho các đường cong được xác định trên G(F ), khi đó Eve sẽ thực hiện khoảng 2 phép tính Nếup 296

Trang 10

Eve có một siêu máy tính và có thể thực hiện một tỷ phép tính mỗi giây, anh ta sẽ mất khoảng 13 hai nghìn tỷ năm để tìm ra khóa bí mật.

Có được điều này do độ khó của bài toán logarithm rời rạc ở phía sau ECDSA Các tham số của đường cong nên được chọn rất cẩn thận để bảo đảm đường cong Elliptic tránh khỏi các cuộc tấn công như Pollard rho và PohligHellman.

5 Ứng dụng của ECDSA

ECC hiện đang được sử dụng trong một loạt các ứng dụng: chính phủ Mỹ sử dụng để bảo vệ thông tin liên lạc nội bộ, các dự án Tor sử dụng để giúp đảm bảo ẩn danh, đây cũng là cơ chế được sử dụng để chứng minh quyền sở hữu trong Bitcoins, cung cấp chữ ký số trong dịch vụ iMessage của Apple, để mã hóa thông tin DNS với DNSCurve, và là phương pháp tốt để xác thực cho các trình duyệt web an toàn qua SSL/TLS Thế hệ đầu tiên của thuật toán mã hóa khóa công khai như RSA và Diffie-Hellman vẫn được duy trì trong hầu hết các lĩnh vực, nhưng ECC đang nhanh chóng trở thành giải pháp thay thế cho RSA.

Cụ thể hơn nếu truy cập vào phiên bản HTTPS của các trang web phổ biến, như Google.com, Amazon.com, Facebook.com… từ một trình duyệt như Chrome hoặc Firefox, trình duyệt sẽ sử dụng ECC – như là sử dụng ECDHE_ECDSA ECDHE là viết tắt của Elliptic Curve Diffie Hellman Ephemeral và là một cơ chế trao đổi khóa dựa trên đường cong Elliptic ECDSA là Elliptic Curve Digital Signature Algorithm là cơ chế tạo chữ ký số để xác thực kết nối với máy chủ.

Sự cải thiện hiệu suất của ECDSA hơn RSA là rất rõ ràng Ngay cả với một phiên bản cũ của OpenSSL không có tối ưu cho ECC, tạo một chữ ký ECDSA với khóa 256-bit là nhanh hơn 20 lần so với một chữ ký RSA với khóa 2048-bit.

Trong kỷ nguyên công nghệ thông tin và truyền thông hiện nay, nhu cầu đảm bảo an toàn thông tin là không thể thiếu Với việc khóa mã hóa có độ dài ngày tăng dần theo thời gian, ECC đang là ứng viên phù hợp để thay thế RSA trong việc tạo ra các khóa mã ngắn hơn mà vẫn đảm bảo an toàn, từ đó có thể triển khai trên nhiều nền tảng thiết bị từ các mạch điện tử đơn giản đến máy tính lớn, dễ dàng tạo ra hệ thống mạng đáng tin cậy phục vụ tốt hơn cho xã hội.

6 Chương trình thực hiện sơ đồ chữ ký ECDSA

Chương trình được viết bằng Python với hai file chính là ecc.py đại diện cho class EllipticCurve và ECDSA.py đại diện cho class ECDSA File thực thi sẽ là main.py Ngoài ra chương trình còn sử dụng một số thư viện được dựng sẵn như phục vụ mục đích tính toán, hàm băm SHA512 của thư viện hashlib và thuật toán kiểm tra số nguyên tố AKS.

Trang 11

Một số hàm

Tính số điểm của đường cong

Tạo cặp khóa:

Trang 12

Kí:

Trang 13

Xác thực chữ kí:

(*) Cách chạy chương trình

Mở thư mục code và nhấn chuột phải chọn Open in Terminal.

Trang 14

Trong màn hình Console nhập python main.py để chạy chương trình.

7 Kết luận

Trong bài tiểu luận này em đã giới thiệu sơ đồ chữ ký trên đường cong elliptic, về cách thức thực hiện, ứng dụng của nó trong thực tế cũng như một chương trình đơn giản được viết bằng Python để mô phỏng các giai đoạn của thuật toán chữ số trên đường cong elliptic ECDSA được cho là giải pháp hiệu quả và an toàn, với kích thước khóa nhỏ hơn nhưng thuật toán có thể cho mức an toàn cao như thuật toán khác có kích thước khóa lớn hơn Ví dụ như thuật toán elliptic sử dụng khóa có độ dài là 160 bit thì có thể tương đương với thuật toán RSA sử dụng khóa có độ dài 1024 bit

Ngày đăng: 04/05/2024, 12:45

Tài liệu cùng người dùng

Tài liệu liên quan