4.4.4.1 Ký chống chối bỏ trên EC
Năm 2001, C.H. Lin công bố lược đồ chữ ký chống chối bỏ trên đường cong Elliptic để làm tăng sức mạnh của lược đồ chữ ký chống chối bỏ. Lược đồ gồm 3 bước như sau [25]:
Alice muốn ký lên thông điệp M Є [1, n-1], các bước thực hiện như sau: Bước 1: Chọn đường cong E trên trường Zp.
Bước 2: Lựa chọn điểm cơ sở B Є E(Zp) bậc n. Bước 3: Chọn một số ngẫu nhiên x Є [1, n-1].
Bước 4: Chọn một số ngẫu nhiên r Є [1, n-1] và sử dụng M và r để tìm một điểm T trên EC sao cho (M r mod n) x T = B. Alice lấy (x, r, T) là khoá bí mật.
Bước 5: Chọn một số ngẫu nhiên s Є [1, n-1] và tính t = rx mod n, Q = t x (r
x T + s x B) là khoá công khai. b. Giai đoạn ký: Alice tính
t1 = t2 mod n = r2 x2 mod n; t2 = ts mod n = rxs mod n;
Z = (Mt1 mod n) x (r x T + s x B) + t2 x B = (X1, Y1)
Là chữ ký chống chối bỏ của Alice, Z và M gửi cho người thẩm định Bob
c. Giai đoạn thẩm định
Bước 1: Bob chọn 2 số ngẫu nguyên ngẫu nhiên a, b Є [1, n - 1] và tính
W = a x Z + b x Q = (X2, Y2)
W và (a + b) được gửi cho người ký.
Bước 2: Sau khi nhận W, Alice tính
R = (r1x-1 mod n) x W - [s (a + b) mod n] x B
Ở đây d-1 là nghịch đảo của d. Kết quả R được gửi cho Bob. Bước 3: Người thẩm định Bob tính
u = aM mod n, v = bM-1 mod n,
R’ = u x Q + v x B.
Nếu R = R’ thì M được xác thực. 4.4.4.2 Ký nhóm chống chối bỏ trên EC
Giả thiết rằng có k ≥ 2 người dùng trong nhóm, và mỗi người dùng trong nhóm có một khoá riêng. Các người dùng được biểu diễn bằng U1, U2, U3, …, Uk.
a. Sinh khoá:
Để ký lên thông điệp M Є [1, n-1], mỗi người dùng trong nhóm sinh cho mình khoá riêng; việc sử dụng khoá riêng của người dùng trong cùng nhóm, khoá công khai nhóm được tính như sau:
Bước 2: Lựa chọn điểm cơ sở G Є E(Zp) mà bậc của nó phải là một số
nguyên tố lớn, định nghĩa là n.
Bước 3: Mỗi người dùng trong nhóm lựa chọn một số nguyên ngẫu nhiên di
Є [1, n-1] là khoá bí mật. Ở đây, i = 1, 2, 3, .., k.
Bước 4: Lấy Q1 = d1 x G, khoá công khai Q của nhóm sẽ được tính như sau:
Q = Qk = dk x (Qk-1) = (d1d2d3…dk mod n) x G
b. Giai đoạn ký
Lấy Z1 = (d1M mod n) x Q, khi đó chữ ký chống chối bỏ nhóm Z có thể được
tính toán như sau thông qua việc kết hợp các người dùng: Z = Zk = dk x (Zk-1) = (d1d2d3…dk mod n) x Q = (X1, Y1). Sau đó Z và M được gửi sang cho Bob để thẩm định.
c. Giai đoạn thẩm định
Bước 1: Bob lựa chọn 2 số nguyên ngẫu nhiên a và b Є [1, n-1] và tính W = a x Z + b x Q = (X2, Y2), sau đó gửi W cho Alice
Bước 2: Alice Sau khi nhận W, tính R1 = (d1-1 mod n) x W, sau đó R được
tính như sau:
R = Rk = dk-1 x (Rk-1) = (d1-1d2-1d3 -1…dk -1 mod n) x W
Và gửi cho Bob.
Bước 3: Bob tính R’ như sau: R’ = (a M mod n) x Q + b x G
So sánh, nếu R = R’ thì chữ ký chống chối bỏ nhóm và thông điệp M được chứng thực. Chứng minh: Để ngắn gọn, tính t =d1d2d3…dk , do đó Q = Qk = dk x (Qk-1) = (d1d2d3…dk mod n) x G = (t mod n) x G Z = Zk = dk x (Zk-1) = (d1d2d3…dk mod n) x Q = (tM mod n)×Q R = Rk = dk-1 x (Rk-1) = (d1-1d2-1d3 -1…dk -1 mod n) x W = (t-1 mod n)×W = (t-1 mod n)×(a x Z + b x Q)
= (t-1 mod n)×{a x [(tM mod n)×Q] + b x [(t mod n) x G ]} = (t-1 mod n) × [(atM mod n)×Q + (bt mod n)×G]
= (aM mod n) x Q + b x G