Chữ ký số ECDSA

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu về chữ ký số, PKI và ứng dụng cho bảo mật hệ thống quản lý tài liệu (Trang 43 - 44)

5. Phương pháp nghiên cứu

2.1.3Chữ ký số ECDSA

Thuật toán chữ ký số dựa trên đường cong Elliptic (ECDSA – Elliptic Curve Digital Signature Algorithm), lần đầu tiên được đề xuất vào năm 1992 bởi Scott Vanstone để đáp ứng yêu cầu của NIST (Viện Tiêu chuẩn và Công nghệ Quốc gia). Bảo mật xác thực khóa công khai đường cong Elliptic thực hiện ECC bằng cách sử dụng đường cong giả ngẫu nhiên trên trường nguyên tố theo phương trình toán học y² = x³ + ax + b bằng cách sử dụng các tham số miền của đường cong. ECDSA có thể tự tính toán, cài đặt và khóa cặp khóa riêng/chung mà không cần bất kỳ sự giúp đỡ bên ngoài. Không gian bộ nhớ riêng được đặt sang một bên để lưu trữ và dùng Chứng thư khóa chung. Bảo mật xác thực khóa công khai đường cong Elliptic cũng có bộ đếm giảm tốc 17-bit có thể thiết lập một lần, không biến đổi. Sự đơn giản về giao diện của ECDSA tạo điều kiện cho việc sử dụng Bảo mật xác thực khóa công khai đường cong Elliptic trong một loạt các ứng dụng.

Thuật toán chữ ký số dựa trên đường cong Elliptic gồm các bước như sau: * Tạo khóa ECDSA. Bên A thực hiện như sau:

1. Chọn một đường cong elip E được xác định trên ℤp.

Số lượng điểm trong E (ℤp) nên chia hết cho một số nguyên tố r lớn. 2. Chọn một điểm cơ bản G ∈ E (p) của thứ tự r (có nghĩa là rG = 𝒪). 3. Chọn một số nguyên s ngẫu nhiên trong khoảng [1, r – 1].

4. Tính W = sG. Khóa chung là (E, G, r, W), khóa riêng là s.

* Tính toán chữ ký ECDSA. Để ký một tin nhắn m, A thực hiện như sau:

1. Tính toán đại diện tin nhắn f = H (m), sử dụng hàm băm mật mã. Lưu ý rằng f có thể lớn hơn r nhưng không dài hơn (bit đo).

2. Chọn một số nguyên u ngẫu nhiên trong khoảng [1, r – 1]. 3. Tính V = uG = (xV, yV) và c ≡ xV mod r (goto (2) nếu c = 0).

4. Tính d ≡ u-1*(f + s*Pc) mod r (2) nếu d = 0). Chữ ký cho tin nhắn m là cặp số nguyên (c, d).

35

* Xác minh chữ ký ECDSA. Để xác minh chữ ký của A, B nên làm như sau: 1. Lấy bản sao xác thực của khóa công khai của A (E, G, r, W). Xác minh rằng c và d là các số nguyên trong khoảng [1, r – 1].

2. Tính f = H (m) và h ≡ d-1 mod r. 3. Tính h1 f *h mod r và h2 c*h mod r.

4. Tính h1G + h2W = (x1, y1) và c1 ≡ x1 mod r. Chấp nhận chữ ký khi và chỉ khi c1 = c.

Thuật toán Chữ ký số Elliptic Curve (ECDSA), một trong những biến thể của Mã hóa Elliptic Curve (ECC) được đề xuất thay thế cho các hệ thống khóa công khai được thiết lập như Thuật toán Chữ ký số (DSA) và Rivest Shamir Adeld (RSA), sự hấp dẫn của ECDSA là do không có thuật toán hàm mũ phụ nào được biết để giải bài toán logarit rời rạc đường cong elip trên đường cong elip được chọn đúng. Do đó, phải mất toàn bộ thời gian theo cấp số mũ để giải quyết trong khi thuật toán tốt nhất được biết để giải quyết hệ số nguyên cơ bản cho RSA và bài toán logarit rời rạc trong DSA đều mất thời gian theo cấp số nhân.

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu về chữ ký số, PKI và ứng dụng cho bảo mật hệ thống quản lý tài liệu (Trang 43 - 44)