Chữ ký chống chối bỏ trên EC

Một phần của tài liệu Tìm hiểu chữ ký số và ứng dụng của nó (Trang 77)

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]:

a. Giai đoạn sinh khoá:

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 Mr để 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 x2mod n;

t2 = ts mod n = rxs mod n;

Z = (Mt1mod n) x (r x T + s x B) + t2x B = (X1, Y1)

Là chữ ký chống chối bỏ của Alice, ZM 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 1: Chọn đƣờng cong E trên trƣờng Zp.

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 = dkx (Zk-1) = (d1d2d3…dk mod n) x Q = (X1, Y1). Sau đó ZM đƣợ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 ab Є [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 -1 d2 -1 d3 -1…dk -1 mod n) x W Và gửi cho Bob.

Bƣớc 3: Bob tính R‟ nhƣ sau: R‟ = (aM 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

= (d1d2d3…dk mod n) x Q = (tM mod nQ

R = Rk = dk-1 x (Rk-1) = (d1-1d2-1d3 -1…dk -1

mod n) x W = (t-1mod nW

= (t-1mod n)×(a x Z + b x Q)

= (t-1mod n)×{a x[(tM mod nQ]+ b x[(t mod n) x G ]} = (t-1mod n) × [(atM mod nQ + (bt mod nG]

= (aM mod n) x Q + b x G

= R'

4.4.5 Chữ ký với ngƣời thẩm định đƣợc chỉ định

4.4.5.1 Giới thiệu về chữ ký với người thẩm định được chỉ định

Lƣợc đồ ký chống chối bỏ cho phép ngƣời ký kiểm soát đƣợc chữ ký của mình bởi vì để thẩm định chữ ký cần phải có sự tƣơng tác với ngƣời ký. Tuy nhiên, ở một khía cạnh khác, ngƣời ký không thể biết ai là ngƣời thực hiện thẩm định chữ ký của mình. Điều này đƣợc khắc phục bởi lƣợc đồ ký với ngƣời thẩm định đƣợc chỉ định (designated verifier signature - DVS).

Năm 1996, Jakobsson đề xuất lƣợc đồ chữ ký với ngƣời thẩm định đƣợc chỉ định. Với lƣợc đồ ký này, chỉ những ngƣời đƣợc chỉ định mới có thể kiểm tra tính hợp lệ của chữ ký và không thể giải thích cho bất kỳ ai khác về sự thật này cũng nhƣ việc chính ngƣời đƣợc chỉ định có thể tạo ra chữ ký tƣơng tự với chữ ký gốc. Năm 2003, Saeednia bổ sung khái niệm tính mạnh (strongness) trong DVS để tạo ra lƣợc đồ chữ ký với ngƣời thẩm định đƣợc chỉ định mạnh (strong designated verifier signatures – SDVS) sao cho ngƣời thẩm định đƣợc chỉ định chỉ có thể thẩm định chữ ký bằng khoá bí mật của mình trong bƣớc thẩm định. Khái niệm chữ ký uỷ nhiệm (proxy signatures) đƣợc bổ sung vào DVS để tạo ra lƣợc đồ chữ ký uỷ nhiệm với ngƣời thẩm định đƣợc chỉ định (designated verifier proxy signature schemes - DVPS).

4.4.5.2 Định nghĩa

Mô hình: Alice muốn chứng minh cho Bob và chỉ Bob rằng mệnh đề Θ

đúng. Lấy ΘBob là mệnh đề “Tôi biết khoá bí mật của Bob”. Alice sẽ chứng minh Θ

v ΘBob cho Bob. Bob sẽ tin Θ là đúng (hoặc là khoá bí mật của Bob bị lộ). Tuy nhiên, ngƣời thứ ba Cindy sẽ không tin vào điều này ngay cả khi Bob phối hợp và và chia sẻ thông tin bí mật với cô ta.

Ở đây cũng sẽ sử dụng một lƣợc đồ ràng buộc cửa sập. Giả sử thông tin cửa sập chỉ có Bob biết. Nếu Alice sử dụng lƣợc đồ để ràng buộc một giá trị của Bob

thì Bob sẽ tin điều này. Nhƣng nếu điều chứng minh này Bob đƣợc chuyển sang cho Cinde thì Cindy không có lý do để tin vào điều ràng buộc vì Bob có thể phá bỏ điều ràng buộc nếu anh ta muốn.

Định nghĩa1 Ngƣời thẩm định đƣợc chỉ định: Lấy (PA, PB) là một giao thức để Alice chứng minh tính đúng của mệnh đề Θ cho Bob. Nói rằng Bob là một ngƣời thẩm định đƣợc chỉ định nếu điều sau là đúng: Cho bất kỳ giao thức (PA, P‟B, Pc) gồm Alice, Bob và Cindy trong đó Bob chứng minh tính đúng của υ cho Cindy, không có giao thức (P‟‟B, PC) khác sao cho Bob có thể thực hiện tính toán của P‟‟B

và Cindy không thể phân biệt bản sao (PA, P‟B, Pc) từ (P‟‟B, PC).

Định nghĩa 2 Lƣợc đồ cửa sập: Lấy c là một hàm có đầu vào (yi, w, r) với yi

là khoá công khai của ngƣời dùng. Khoá bí mật tƣơng ứng với yixi; w Є W là giá trị đƣợc ràng buộc và r là chuỗi ngẫu nhiên. Chũng ta nói rằng c là một lƣợc đồ ràng buộc cửa sập nếu và chỉ nếu:

- Không tồn tại máy tính trong thời gian đa thức, cho yi mà tìm ra xung đột (w1, r1), (w2, r2) sao cho c(yi, w1, r1) = c(yi, w2, r2)

- Không tồn tại máy tính trong thời gian đa thức, cho yic(yi, w, r) , tìm ra w

- Không tồn tại máy tính trong thời gian đa thức, cho bất kỳ bộ 4 giá trị (xi,w1,r1,w2) trong một tập các bộ 4 có thể tìm ra r2 sao cho c(yi,w1,r1) =

c(yi,w2, r2) với khoá công khai yi tƣơng ứng với khoá bí mật là xi . 4.4.5.3 Chữ ký người thẩm định được chỉ định tương tác

Chỉ cần thay đổi nhỏ trong giao thức thẩm định của lƣợc đồ chữ ký chống chối bỏ sẽ tạo ra ngƣời thẩm định đƣợc chỉ định. Việc thay đổi sẽ dựa trên lƣợc đồ xác thực của chữ ký chống chối bỏ zero-knowledge. Các ký hiệu đƣợc sử dụng nhƣ trong lƣợc đồ gốc. Lấy p là số nguyên tố lớn, α là phần tử nguyên thuỷ của Gq, khoá bí mật của các thành viên là xi, và khoá công khai là yi = αxi

mod p. Nếu m là thông điệp cần ký thì chữ ký trên ms = mxi mod p.

Lƣợc đồ sẽ thay đổi nhƣ sau [22]:

- Bƣớc 1: Bob sinh ngẫu nhiên hai số ab trong Zq và tính v = ma αb mod p. Bob gửi v cho Alice.

- Bƣớc 2: Alice tính w = vxA mod p. Alice tính một ràng buộc c theo w và gửi c

cho Bob.

- Bƣớc 3: Bob gửi (m,s,a,b) cho Alice, sau đó Alice sẽ kiểm tra xem v có đúng không.

- Alice sẽ bỏ ràng buộc với c bằng việc gửi w và một số ngẫu nhiên bất kỳ r

đƣợc sử dụng trong ràng buộc cho Bob. Bob thẩm định w = sa yAb mod p và kiểm tra điều ràng buộc c có đúng không. Việc kiểm tra (các phép tính trên modulo p) nhƣ sau: w = sa yA b vxA = (mxA)a(yA)b (ma αb)xA = (mxA)a(yA)b (mxA)a(αxA)b = (mxA)a(αxA)b

Điều thay đổi trên tạo ra ngƣời thẩm định đƣợc chỉ định vì việc tính lƣợc đồ ràng buộc cửa sập sử dụng khoá công khai của ngƣời đƣợc chỉ định.

4.4.5.4 Chữ ký người thẩm định được chỉ định không tương tác

Chữ ký ngƣời thẩm định đƣợc chỉ định không tƣơng tác là lƣợc đồ chữ ký có tính chất trung gian giữa lƣợc đồ chữ ký cơ bản và chữ ký chống chối bỏ. Với lƣợc đồ ký này, cho phép hạn chế ngƣời tham gia thẩm định tuy nhiên nó không cần sự hỗ trợ của ngƣời ký.

Về cơ bản, lƣợc đồ ký này dựa trên giao thức three-move zero-knowledge bằng việc tạo ra những câu hỏi-trả lời từ giá trị hàm băm của các thông tin ràng buộc. Ở đây sử dụng các ký hiệu nhƣ trong phần 4.4.5.3. Giao thức xác thực gồm một giao thức three-move zero-knowledge. Cụ thể [22]:

Ngƣời chứng minh Alice lựa chọn w, r, t ЄuZq và tính:

c = αw yB r mod p G = αt mod p M = mt mod p h = hashq (c,G,M) d = t + xA (h + w) mod q

ở đây hàm hashq cho ta một giá trị băm trong Zq. Ngƣời chứng minh Alice gửi (w, r, G, M, d) cho ngƣời thẩm định Bob. Ngƣời thẩm định đƣợc chỉ định Bob thực hiện thẩm định: Tính c = αw yBr mod p h = hashq (c,G,M) và thẩm định rằng G yA h+w = αd mod p

M sh+w = md mod p

Kịch bản mô phỏng: Để mô phỏng một kịch bản đúng, ngƣời thẩm định đƣợc chỉ định thực hiện nhƣ sau: Bob lựa chọn các số d, β, δ Єu Zq và tính

c = αδ mod p G = αd yA mod p M = md s-β mod p h = hashq (c,G,M) w = β – h mod q r = (δ - w)xB-1 mod q

Từ những tính toán này mà Bob có thể mô phỏng lại những thao tác mà Alice đã làm và ngƣời thứ ba sẽ không phân biệt đƣợc Alice hay Bob là ngƣời ký gốc của thông điệp.

4.4.5.5 Chữ ký người thẩm định được chỉ định đơn trên nhóm bện [27]

Giả sử Alice là ngƣời ký gốc và Cindy là ngƣời thẩm định đƣợc chỉ định bởi Alice, „m‟ là thông điệp đƣợc ký.

Bƣớc 1: Sinh khoá Mỗi ngƣời dùng „u‟ chọn một bện xu ЄR Bl+r (xu ЄR LBl ) và chọn xu = auxuau -1

ЄR LBrsao cho aulà khoá bí mật và (x‟u, xu) là khoá công khai. Bƣớc 2: Sinh chữ ký

Alice chọn một bện b Є LBl và tính α = bxcb-1, β = bx‟cb-1, h = H1(H2(β) m), б = a0haa

-1

.

Gửi δ = (m, α, б) cho ngƣời thẩm định đƣợc chỉ định Cindy nhƣ là chữ ký trên thông điệp „m

Bƣớc 3: Thẩm định chữ ký

Cindy khi nhận đƣợc chữ ký δ , tính β = acαac-1

, h = H1(H2(β) m ) và chấp nhận chữ ký chỉ khi б~ h, бx0‟ ~ hx0. Chứng minh: 1 - Vì б = a0haa -1 nên б~ h 2 - бx0‟ = (a0haa -1 )(a0x0a0 -1 ) = a0(hx0)a0 -1 ~ hx0 Ứng dụng: Chữ ký ngƣời thẩm định đƣợc chỉ định mạnh (SDVS) đƣợc ứng dụng trong một số tình huống ở đó ngƣời ký chỉ muốn chứng minh tính hợp lệ của chữ ký cho một ngƣời duy nhất. Ví dụ nhƣ trƣờng hợp ngƣời đấu hầu sử dụng chữ ký SDVS để ký số lên bản dự thầu của mình. Một ví dụ khác là sử dụng chữ ký

SDVS để ký lên bản quyền phần mềm. Trong trƣờng hợp này, các công ty phần mềm sử dụng chữ ký để ký lên các khoá (key) của bản quyền phần mềm sao cho các khoá chỉ đƣợc sử dụng bởi những ngƣời đã mua bản quyền sản phẩm.

4.4.5.6 Chữ ký hai người thẩm định được chỉ định trên nhóm bện [27]

Lƣợc đồ đƣợc xây dựng theo cách hai ngƣời thẩm định có thể thẩm định chữ ký một cách độc lập, ngay cả khi họ không biết về nhau.

Bƣớc 1: Sinh khoá

Mỗi ngƣời dùng „u‟ chọn một bện xu ЄR Bl+r (xu ЄR LBl ) và chọn xu‟ =

auxuau-1 ЄR LBrsao cho aulà khoá bí mật và (x‟u, xu) là khoá công khai. Bƣớc 2: Sinh chữ ký

Alice chọn một bện b Є LBl và tính α1 = bxcb-1, β1 = bx‟cb-1, α2 = bxTb-1, β2 =

bx‟Tb-1, h = H1(H2(β1β2) m ), б = a0haa-1.

Gửi δ1 = (m, α1, β2, б) cho ngƣời thẩm định đƣợc chỉ định Cindy và δ2 = (m, α2, β1, б) nhƣ là chữ ký trên thông điệp „m‟ đối với ngƣời thẩm định đƣợc chỉ định Trevor.

Bƣớc 3: Thẩm định

Cindy khi nhận đƣợc chữ ký δ1 , tính β1 = acα1ac-1 , h = H1(H2(β1β2) m ) và chấp nhận chữ ký chỉ khi б~ h, бx0‟

~ hx0.

Tƣơng tự, Trevor khi nhận đƣợc chữ ký δ2 , tính β2 = aTα2aT-1 , h = H1(H2(β1β2) m ) và chấp nhận chữ ký chỉ khi б~ h, бx0‟ ~ hx0. Chứng minh: 1 - Vì б = a0haa-1 nên б~ h 2 - бx0‟ = (a0haa-1)(a0x0a0-1) = a0(hx0)a0-1 ~ hx0

Ứng dụng: Giả sử tình Alice bắt đầu một dự án mới và vì một lý do nào đó cô ta cần phải thảo luận dự án này với cả Bob và Cindy. Tuy nhiên, Alice không muốn dự án của mình bị lộ lọt ra ngoài trong khi thảo luận. Hơn nữa, Alice không muốn Bob và Cindy có thể giải thích cho một ai khác nữa biết về dự án. Trong tình huống này chữ ký có hai ngƣời thẩm định đƣợc chỉ định mạnh (Strong Bi- Designated Verifier Signature Scheme) đƣợc sử dụng.

4.5 ỨNG DỤNG CỦA LƢỢC ĐỒ CHỮ KÝ CHỐNG CHỐI BỎ

4.5.1 Nhận xét chung

Để đánh giá mức độ an toàn của lƣợc đồ chữ ký số nói chung, thông thƣờng dựa vào hai khía cạnh: Thứ nhất là độ mật của hệ mật mã khoá công khai mà lƣợc

đồ chữ ký số đó sử dụng; thứ hai là những điểm yếu trong giao thức ký-thẩm định của bản thân lƣợc đồ đó.

4.5.1.1 Về các hệ mật mã khoá công khai được sử dụng

- Với lƣợc đồ ký số mà tính an toàn dựa trên bài toán IFP cần chọn các thông số nhƣ trong 2.1.2.

- Với lƣợc đồ ký số mà tính an toàn dựa trên bài toán DLP cần chọn các thông số nhƣ trong 2.1.3.

- Với lƣợc đồ ký số mà tính an toàn dựa trên bài toán ECC cần chọn các thông số nhƣ trong 2.2.3.

- Với lƣợc đồ ký số dựa trên không gian không giao hoán, tính an toàn đƣợc phân tích trong 3.4.3.

4.5.1.2 Những điểm yếu trong giao thức ký-thẩm định chữ ký

- Điểm yếu trong giao thức của lƣợc đồ ký chống chối bỏ ban đầu do D. Chaum và H. van Antwerpen đƣợc chỉ ra trong 4.3.3.

- Nhiều biến thể của lƣợc đồ ký chống chối bỏ đƣợc nghiên cứu và đề xuất (xem 4.2) nhằm khắc phục điểm yếu cũng nhƣ nhằm khắc phục nhƣợc điểm của lƣợc đồ gốc.

4.5.2 Một số ứng dụng chung

4.5.2.1 Ứng dụng trong ngân hàng

Tình huống đặt ra: Tại ngân hàng, khách hàng C muốn gửi vào tài khoản của mình một số tiền lớn. Trong số nhân viên của ngân hàng, có một nhân viên xấu muốn chiếm đoạt số tiền này. Khi khách hàng C muốn giao dịch số tiền của mình với khách hàng A, nhân viên xấu này tìm cách để biết đƣợc một số thông tin bí mật của A và anh ta thực hiện giả mạo mình là A. Nếu áp dụng mô hình chữ ký thông thƣờng, khi nhân viên xấu này biết đƣợc thông tin bí mật của A (khoá bí mật) thì anh ta hoàn toàn có thể giả mạo A để lấy tiền của C.

Giả pháp: Tuy nhiên, nếu áp dụng mô hình chữ ký chống chối bỏ thì nhân viên xấu này không thể thực hiện hành vi giả mạo vì khi muốn lấy tiền của C, anh ta phải thực hiện một số thao tác thẩm định có liên quan tới C. C có thể xác định đƣợc ngƣời đang thẩm định chữ ký của mình chính là nhân viên xấu chứ không

Một phần của tài liệu Tìm hiểu chữ ký số và ứng dụng của nó (Trang 77)

Tải bản đầy đủ (PDF)

(94 trang)