Thuật toán ECDSA - trong Bitcoin, Ethereum?
ECDSA (Elliptic Curve Digital Signature Algorithm) là thuật toán chữ ký số dựa trên mã hóa đường cong elliptic (ECC). ECDSA không dùng để mã hóa – nó dùng để xác thực tính toàn vẹn và nguồn gốc của dữ liệu, tức là tạo và xác minh chữ ký số.
✅ TỔNG QUAN ECDSA
-
Là biến thể của DSA (Digital Signature Algorithm), nhưng dùng toán học đường cong elliptic (Elliptic Curve) thay vì số nguyên lớn.
-
Hiệu quả hơn RSA/DSA: độ bảo mật cao với kích thước khóa nhỏ hơn → nhanh hơn và tiết kiệm tài nguyên hơn.
-
Dùng phổ biến trong: Bitcoin, Ethereum, chứng chỉ số SSL, chữ ký số, v.v.
🔧 CÁC THÀNH PHẦN CHÍNH
-
Đường cong elliptic trên trường hữu hạn :
y^2=x3+ax+bmod p -
Các tham số công khai:
-
: điểm sinh (base point)
-
n: số nguyên lớn, bậc của
-
p,a,b: tham số định nghĩa đường cong
-
-
Khóa:
-
Private key: một số nguyên d∈[1,n−1]
-
Public key: Q=dG (tích vô hướng trên elliptic curve)
-
✍️ 1. QUY TRÌNH TẠO CHỮ KÝ
Giả sử bạn muốn ký một thông điệp mm:
-
Tính hash:
z=HASH(m)(dùng SHA-256 hoặc tương đương) -
Chọn ngẫu nhiên số k∈[1,n−1]
-
Tính điểm R=kG=(x1,y1)
-
Tính:
-
r=x1mod n
-
s=k−1(z+rd)mod n
-
-
Chữ ký là cặp (r,s)
✅ 2. QUY TRÌNH XÁC MINH CHỮ KÝ
Giả sử bạn nhận được mm và chữ ký (r,s)
-
Tính lại hash: z=HASH(m)
-
Tính:
-
w=s−1mod n
-
u1=zwmod n
-
-
Tính:
-
P=u1G+u2Q=(x1,y1)
-
Kiểm tra:
-
r≡x1mod n
Nếu đúng → chữ ký hợp lệ.
-
💡 VÍ DỤ ỨNG DỤNG
-
Bitcoin & Ethereum: Dùng ECDSA (với đường cong secp256k1) để ký giao dịch.
-
SSL/TLS: Xác thực máy chủ khi kết nối HTTPS.
-
Chứng thực dữ liệu: Email, tài liệu PDF, ứng dụng phần mềm.
⚖️ SO SÁNH ECDSA vs RSA
Thuật toán | Loại | Kích thước khóa | Bảo mật tương đương | Hiệu suất |
---|---|---|---|---|
RSA | Bất đối xứng | ≥2048 bit | 112-bit (RSA-2048) | Chậm hơn |
ECDSA | Chữ ký số ECC | 256 bit | 128-bit | Nhanh hơn |