Sơ đồ chữ ký ECDSA được xây dựng tương tự như sơ đồ chữ ký ElGamal tuy nhiên các thuật toán ký và thuật toán kiểm thử được xây dựng dựa trên đường cong Elliptic.
Để thiết lập sơ đồ chữ ký ECDSA, cần xác định các tham số: lựa chọn
đường cong E trên trường hữu hạn Fqvới đặc số p sao cho phù hợp và
công khai cho tất cả mọi người, điểm cơ sở G∈ E(Fq). Một số khuyến nghị khi lựa chọn các tham số:
1. Kích thích q của trường, hoặc q = p (p>2) hoặc q= 2m.
2. Hai phần tử a, b thuộc Fq xác định phương trình đường cong Elliptic: y2
= x3+ ax + b (p>2) hoặc y2 +xy = x3 +ax2+ b (p = 2).
3. Hai phần tử xGvà yGthuộc Fqxác định điểm cơ sở G = (xG,yG). 4. Bậc n của điểm G với n> 2160 và n > 4 q.
Sinh khoá
1. Chọn số ngẫu nhiên d trong khoảng [2, n-1 ] làm khoá bí mật 2. Tính Q = dG làm khoá công khai.
Thuật toán ký trên bản rõ m
Người dùng A ký lên thông điệp m theo các bước sau: 1. Chọn một số ngẫu nhiên k, 2≤k ≤n−1
2. Tính kG = (x1, y1).
4. Tính k -1mod n.
5. Tính s = k -1(m +dr) mod n. Nếu s = 0, quay lại bước 1. 6. Chữ ký trên thông điệp m là ( r, s ).
Thuật toán kiểm tra chữ ký
Người dùng B kiểm tra chữ ký (r, s ) trên thông điệp m theo các bước sau: 1. Kiểm tra r và s có là các số tự nhiên trong khoảng [ 2, n-1 ] không. 2. Tính w = s-1mod n.
3. Tính u1= mw mod n và u2= rw mod n. 4. Tính X = u1G + u2Q = (xX, yX).
5. Nếu X = O thì phủ nhận chữ ký. Ngược lại tính v = xX mod n. 6. Chữ ký chỉ được chấp nhận nếu v = r.