2.1. Sơ đồ chữ ký ECDSA
Để 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 Fq (q=pm), điểm cơ sở G € E(Fq).
Một số khuyến nghị khi lựa chọn các tham số:
Kích thước q của trường: hoặc q = p (p > 2) hoặc q = 2m.
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).
Hai phần tử xG và yG thuộc Fq xác định điểm cơ sở G = (xG, yG).
Bậc n của điểm G với n > 2160 và .
Sinh khóa:
Chọn một giá trị d ngẫu nhiên trong đoạn [2, n – 1] làm khóa bí mật. Tính Q = dG làm khóa công khai.
Ký trên bản rõ m:
Chọn một giá trị k ngẫu nhiên thỏa mãn 2 ≤ k ≤ n – 1.
Tính r = x1 mod n. Nếu r = 0, quay lại bước 1.
Tính s = k-1 (m + dr) mod n. Nếu s = 0, quay lại bước 1. Chữ ký trên thông điệp m là (r, s).
Kiểm tra chữ ký:
Kiểm tra r và s có trong đoạn [2, n – 1] không. Tính w = s-1 mod n.
Tính u1 = mw mod n và u2 = rw mod n.
Tính X = u1G + u2Q = (xX, yX).
Nếu X = O thì phủ nhận chữ ký. Ngược lại tính v = xX mod n.
Chữ ký chỉ được chấp nhận nếu v = r.
Chứng minh :
Nếu chữ ký (r, s) trên m là đỳng thì s = k-1(m + dr) mod n. k ≡ s-1 (m + dr) ≡ s-1m + s-1 rd ≡ wm + wrd ≡ u1 + u2d (mod n).
Vì vậy, u1G + u2Q = (u1 + u2d)G = kG, và vì vậy v = r.
2.2. Sơ đồ chữ ký mù Harn trên EC
Năm 1994, Harn đã công bố một sơ đồ chữ ký mù tựa như sơ đồ ECDSA. Chữ ký mù là chữ ký thực hiện trên một văn bản mà người ký hoàn toàn không biết nội dung. Điều này thực hiện được vì người trình ký đã sử dụng một phương pháp nào đó để che dấu nội dung của văn bản gốc để người ký không biết. Để người ký yên tâm, người xin cấp chữ ký phải chứng minh tính hợp lệ của nội dung đã bị che dấu.
Sinh khóa:
Chọn các tham số cho đường cong elliptic: Chọn số nguyên tố p và số nguyên n.
Với 2 phần tử a1, a2 của F(pn), xác định phương trình của E trên F(pn) ( trong trường hợp p > 3) với .
Với 2 phần tử xG và yG trong F(pn) xác định một điểm G = (xG, yG) trên
E(F(pn))
(G O).
Giả sử điểm G có bậc q. Việc sinh khóa bao gồm:
Chọn một khóa bí mật d, là số nguyên ngẫu nhiên trong [2, q – 1]. Tớnh khóa công khai Q, là một điểm trên E sao cho Q = dG.
Ký mù:
Giả sử Bob yêu cầu Alice ký lên một văn bản m0 mà m là đại diện của văn bản này (m = H(m0) với H là một hàm băm nào đó). Giao thức ký được thực hiện như sau:
Alice sinh ra cặp khóa ( ) theo cách sau: chọn ngẫu nhiên và tính . Đặt = , rồi gửi và cho Bob
Bob chọn các tham số làm mù a, b∈ [1, q – 1], tính R trên E sao cho R = a + bG = (xk, yk) và tính r = c(xk) và . Sau đó gửi cho Alice ( là m sau khi đã bị làm mù).
Alice tính , rồi gửi cho Bob.
Bob nhận được , xóa mù để có được chữ ký s trên m bằng cách tính
Cặp (r, s) là chữ ký trên m.
Chứng minh :
Việc xác minh tính hợp lệ của chữ ký Harn được thực hiện như sau: Tìm một điểm V trên E sao cho sG – (m + r)Q = (xv, yv). Kiểm tra r = xv mod q. Nếu đỳng thì (r, s) là chữ ký hợp lệ.
Để chứng minh giao thức trên thực sự tạo ra chữ ký có tính chất “mự”, chúng ta chỉ ra rằng mỗi người ký có cặp duy nhất (a, b) là tham số làm mù, với a, b∈ [1, q – 1]. Với và chữ ký hợp lệ (r, s) của m ta có:
Ta phải chứng minh: . Thật vậy:
2.3. Sơ đồ đa chữ ký mù Harn trên EC
Đa chữ ký hiểu là chữ ký được tạo thành bởi nhiều người ký. Có văn bản cần được ký bởi một số người thay vì một người nhằm bảo đảm tính an toàn. Những người ký không biết về nội dung văn bản ký.
Sinh khóa:
Việc chọn các tham số cho đường cong elliptic tương tự như sơ đồ chữ ký Harn. Giả sử rằng có t người ký là Ui,với . Việc sinh khóa được thực hiện qua các bước:
Mỗi người ký Ui chọn ngẫu nhiên khóa bí mật di là một số nguyên thuộc [2, q – 1].
Khóa công khai của người ký Ui là điểm: Qi = diG = ( ) với i = 1... t.
Khóa công khai cho tất cả người ký là: Q = Q1 +…+ Qt = dG = (xd, yd)
với d = d1 + …+ dt (mod q).
Ký mù trên m:
Người ký Ui sinh một lần cặp ( ) bằng cách chọn ngẫu nhiên và tính . Ui đặt = , i = 1,…, t rồi gửi và cho Ban thư ký.
Ban thư ký chọn các tham số làm mù , tìm điểm R trên E sao
cho trong đó và . Ban thư ký tính
và . Sau đó, gửi và đến cho từng người ký
Ui.
Uitính chữ ký , i=1,…, t , gửi tới Ban thư ký.
Ban thư ký tính và kiểm tra , i=1,
…, t. Chữ ký mự nhúm ECC là cặp (r, s) trong đó và .
Chứng minh :
Cặp (r, s) là chữ ký do nhiều thành viên ký trên thông điệp m. Việc xác minh tính hợp lệ của đa chữ ký (r, s) trên thông điệp m được thực hiện như sau:
Tìm một điểm trên E sao cho sG – (m + r)Q = (xe, ye).
Kiểm tra r = xe mod q. Nếu đỳng thì (r, s) được chấp nhận. Dễ dàng để xác minh rằng sG – (m + r)Q = R.
Để chứng minh rằng giao thức ký trên tạo ra chữ ký có tính chất “mự” ta phải chỉ ra rằng với mỗi người ký tồn tại duy nhất cặp (a, b) là các tham số làm mù với a,
b∈ [1, q – 1]. Với các và cặp chữ ký hợp lệ (r, s) của thông điệp m,
chúng ta có: , .
Ta phải chỉ ra rằng . Thật vậy: