Chữ ký chống chối bỏ Zero-Knowledge

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 73 - 75)

4.4.1.1 Giao thức Zero-Knowledge [8]

Zero-knowledge là giao thức dùng để chứng minh một phát biểu là đúng nhưng không tiết lộ bất kì thông tin gì ngoài tính chân thực của phát biểu. Khái niệm này đầu tiên được Shafi Goldwasser đề cập đến năm 1985. Sau đó, Blum, Feldman và Micali đưa ra khái niệm tương tự là Non-interactive Zero-knowledge proof với ý nghĩa rằng một chuỗi ngẫu nhiên được chia sẻ giữa người chứng minh và người xác nhận đủ cho các tính zero-knowledge mà không cần tương tác trực tiếp giữa hai người. Tính chất của Zero-knowledge phải thỏa 3 điều kiện sau:

– Completeness: Nếu phát biểu là đúng, người xác nhận chân thật sẽ bị thuyết phục.

– Soundness: Nếu phát biểu là sai, không có người chứng minh nào có thể thuyết phục người xác nhận được, ngoại trừ một xác suất rất nhỏ.

– Zero-knowledge: Nếu phát biểu là đúng, không có người xác nhận nào có thể lấy được thông tin về sự thật.

Ví dụ, bài toán tìm logarit rời rạc: Cho G là nhóm nhân hữu hạn N phần tử; b là một phần tử cố định trong G; y là một phần tử trong G. Alice đã tìm ra cách giải phương trình bx = y để tìm được x và muốn thuyết phục Bob về điều này mà không muốn tiết lộ cách giải (được biết N, y, b). Alice tiến hành như sau:

Bước 1: Alice chọn một số ngẫu nhiên e < N và gửi cho Bob b’ = be.

Bước 2: Bob tung đồng xu lên: Nếu sấp thì Alice phải tiết lộ e, Bob sẽ kiểm tra có đúng b’ = be? Nếu ngửa thì Alice phải tiết lộ thặng dư của x + e mod N, Bob sẽ kiểm tra có đúng yb’ = bx+e?

Bước 3: Lặp lại bước 2 và bước 3 cho đến khi Bob được thuyết phục. Giải thích: Các bước trên thực hiện theo giao thức Zero-knowledge vì:

- Completeness: Nếu Alice biết x thì luôn đưa ra câu trả lời đúng dù giao thức có được thực hiện nhiều lần.

- Soundness: Nếu Alice không biết giá trị x thì không thể trả lời được khi đồng xu ngửa. Để có thể đánh khi đồng xu ngửa, Alice sẽ chọn b’ = be/y và chọn x + e mod N = e (tức x =0), thì Alice không thể qua mặt Bob khi đồng tiền sấp (vì b’

= be/y ≠ be). Xác xuất để lừa là hoặc Bob luôn giao đồng xu sấp (hoặc ngửa) với xác xuất sau m lần thực hiện là 2-m.

- Zero-knowledge: Nếu Cindy biết trước đồng xu sẽ xuất hiện mặt nào, Cindy có thể vượt qua các kiểm tra của Alice mà không biết giá trị x.

4.4.1.2 Chữ ký chống chối bỏ Zero-Knowledge [11]

a. Chọn các thông số

Người ký chọn số nguyên tố p (sao cho q = 2p+1, q cũng là số nguyên tố), α là một phần tử nguyên thuỷ của nhóm con Gq của Z*

p cấp q. Người ký A có khoá bí mật x và khoá công khai tương ứng là αx . Thông điệp m (m ≠ 1) được A ký sẽ cho ra chữ ký z: z = mx.

b. Giao thức xác thực

Người thẩm định B khi nhận được z, nếu muốn kiểm tra tính hợp lệ của chữ ký thì sử dụng giao thức sau:

Bước chuẩn bị: Người ký sinh số nguyên tố q; người thẩm định sinh hai số a,

b là phần tử ngẫu nhiên của nhóm.

Bước 1: Người thẩm định B tính ma αb và gửi cho người ký A

Bước 2: Người ký tính [ma αb+q , (ma αb+q)x ] và gửi cho người thẩm định Bước 3: Người thẩm định gửi a, b cho người ký

Bước 4: Người ký gửi q cho người thẩm định

Giải thích: Để bắt đầu, mỗi bên bí mật chọn ngẫu nhiên các thông số cho mình: A chọn q và B chọn a, b. Ở bước 3, khi nhận được a, b thì A có thể khôi phục được thông điệp trong bước 1. Khi thông điệp khôi phục thành công, A thực hiện bước 4. Cuối cùng, bằng việc thay thế z cho mx, B có thể xây dựng lại thông điệp trong bước 2 và đảm bảo rằng nó đúng (Tính như sau: (ma αb+q)x = (mx)a (αx)b+q

= za kUSb+q: kUS là khoá công khai của A). Tính an toàn của giao thức xác thực

- Giao thức xác thực trên là zero-knowledge: Nếu B gửi thông điệp trong bước 3 và nhận về thông điệp trong bước 4, B có thể xây dựng thông điệp trong bước 2. Nếu B không gửi đúng thông điệp trong bước 3, thì bước 4 không được thực hiện.

- Ngay cả khi A có máy tính có khả năng vô hạn thì xác suất thành công của A không vượt quá p-1 để đưa ra một phản hồi (trả lời) hợp lệ cho một chữ ký không

hợp lệ. Để chứng minh điều này, về bản chất cũng tương tự như chứng minh trong lược đồ chữ ký chống chối bỏ ban đầu.

c. Giao thức chối bỏ

Người ký thông điệp muốn giải thích cho người thẩm định rằng thông điệp riêng tư z không phải là chữ ký hợp lệ tương ứng với khoá công khai αx và thông điệp m: nghĩa là z ≠ mx . Để làm được điều này, người ký thông điệp phải phối hợp thực hiện một giao thức chối bỏ. Người ký có thể giả mạo với xác suất 1/(k+1), ở

đây k là hằng số được thoả thuận trước. Thực tế k có thể lấy là 1023, và cơ hội để lừa là nhỏ hơn 1/1.000.000 với 10 lần thực hiện giao thức (cơ hội nhỏ hơn 2-100).

Bước chuẩn bị: Người ký A chọn một số ngẫu nhiên r; người thẩm định B sinh số số s Є {1, .., k}, và số a.

Bước 1: Người thẩm định tính [ms αa , zs αxa ] và gửi cho người ký Bước 2: Người ký tính blob(r,s) và gửi cho người thẩm định Bước 3: Người thẩm định gửi a cho người ký

Bước 4: Người ký gửi r cho người thẩm định

Giải thích: Trong một lần thực hiện giao thức, khởi đầu B chọn một số nguyên s trong khoảng {0 …k} và một số a độc lập trong các phần tử nhóm. Trong bước 1, B tính cặp giá trị và gửi cho A. Để bắt đầu bước 2, A xác định giá trị của s bằng việc thử sai. Một cách hiệu quả để tìm s là nhân mũ của thành phần đầu trong giá trị mà B gửi cho A, sau đó thực hiện phép chia với thành phần thứ hai.

Cụ thể: (ms αa)x/ zs αxa = [mx/z]s≢ 1

khi biết giá trị này, và vì s trong khoảng {0 …k} nên A có thể thử và tìm ra s, việc thử được thực hiện sau k+1 lần (Nếu thực tế z = mx , thì [mx/z]s = 1 với mọi giá trị

của s. Do đó, trong trường hợp người ký là kẻ lừa đảo thì tỷ lệ thành công để tìm ra

s chính xác chỉ là 1/(k+1)). Nếu s không được tìm thấy thì A sử dụng một giá trị

ngẫu nhiên. Bước 2, A gửi thông điệp là một blob trong đó có ràng buộc giá trị s, nhưng s được giữ bí mật cho đến khi số ngẫu nhiên r được công bố. Dựa trên việc nhận blob trong bước 2, B có thể gửi a. Và trước khi kết thúc việc gửi r trong thông điệp cuối cùng, A kiểm tra a xem có thể khôi khục được thông điệp ban đầu trong bước 1 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 73 - 75)

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

(97 trang)
w