LỊCH SỬ PHÁT TRIỂN CỦA CHỮ KÝ CHỐNG CHỐI BỎ [32]

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 67 - 97)

- Năm 1989: D. Chaum và H. van Antwerpen: Lược đồ chữ ký chống chối bỏ.

- Năm 1990:+ J. Boyar, D. Chaum, I. B. Damgard và T.P. Pedersen: Lược đồ chữ ký chống chối bỏ có thể chuyển đổi.

+ D. Chaum : Lược đồ chữ ký chống chối bỏ Zero-knowledge

- Năm 1991: D. Chaum, E. van Heijst và B. Pfitzmann: Lược đồ chữ ký số chống

chối bỏ mạnh đảm bảo an ninh vô điều kiện với người ký.

+ Y. Desmedt và M. Yung: Các điểm yếu của lược đồ chữ ký số chống chối bỏ.

+ A. Fujioka, T.Okamoto và K. Okta: Lược đồ chữ ký số chống chối bỏ và hệ thống chứng minh hai chiều tương tác.

+ T.P. Pedersen: Những người chứng minh phân tán và việc ứng dụng cho chữ ký chống chối bỏ.

- Năm 1992: L. Harn và S. Yang. Lược đồ chữ ký số chống chối bỏ hướng nhóm

mà không cần sự hỗ trợ của một thực thể tin cậy trung gian.

- Năm 1994:+ D. Chaum: Lược đồ chữ ký với người xác thực được chỉ định. + M. Jakobsson: Tống tiền sử dụng chữ ký số chống chối bỏ.

+ T. Okamoto: Lược đồ chữ ký với người xác thực được chỉ định và hệ mã hoá khoá công khai là tương đương.

- Năm 1996:+ I. Damgard và T. Pedersen: Lược đồ chữ ký chống chối bỏ có thể chuyển đổi mới.

+ M. Jakobsson, K. Sako và R. Impagliazzo: Chứng minh người thẩm định được chỉ định và ứng dụng.

+ C.-H. Lin, C.-T. Wang và C.-C. Chang: Lược đồ chữ ký chống chối bỏ hướng nhóm (t, n) không có trung gian tin cậy.

+ M. Michels, H. Petersen và P. Horster: Khả năng phá vỡ và đề xuất sửa đổi lược đồ chữ ký chống chối bỏ có thể chuyển đổi..

+ K. Sakurai và Y. Yamane: Chữ ký chống chối bỏ mù, giải mã mù và ứng dụng trong việc bảo vệ tính riêng tư.

- Năm 1997: + R. Gennaro, H. Krawczyk và T. Rabin: Chữ ký số chống chối bỏ

dựa trên RSA.

+ M. Michels và M. Stadler: Lược đồ chữ ký số chống chối bỏ có khả năng chuyển đổi hiệu quả .

- Năm 1998: C. Boyd và E. Foo: Giao thức trả tiền Off-line sử dụng chữ ký số

chống chối bỏ.

- Năm 1999:+ N.-Y. Lee và T. Hwang: Lược đồ chữ ký số chống chối bỏ hướng nhóm sử dụng một trung tâm tin cậy.

+ K. Nguyen, Y. Mu và V. Varadharajan: Chữ ký người xác thực chống chối bỏ.

- Năm 2000:+ J. Camenisch, và M. Michels. Tăng cường an ninh cho lược đồ chữ ký người xác thực chống lại kẻ thù có thể tuỳ biến.

+ T. Miyazaki: Nghiên cứu về lược đồ cải tiến chữ ký chống chối bỏ Gennaro-Krawczyk-Rabin dựa trên RSA .

+ Y. Mu và V. Varadharajan: Chữ ký người thẩm định Fail-Stop.

- Năm 2001: + Lee Jongkook, Ryu Shiryong, Kim Jeungseop và Yoo Keeyoung:

Lược đồ chữ ký số chống chối bỏ mới sử dụng thẻ thông minh.

+ G. Wang, S. Qing, M. Wang và Z. Zhou: Lược đồ chữ ký số RSA chống chối bỏ ngưỡng.

- Năm 2002:+ Y.-D. Lyuu, and M.-L. Wu: Lược đồ chữ ký số chống chối bỏ nhóm có thể chuyển đổi. (adsbygoogle = window.adsbygoogle || []).push({});

+ S.D. Galbraith, W. Mao và K.G. Paterson: Chữ ký chống chối bỏ dựa trên RSA cho các Modulo chung.

- Năm 2003:+ Steven D. Galbraith and Wenbo Mao: Nghiên cứu về tính vô danh, tính vô hình của chữ ký người thẩm định và chống chối bỏ.

+ Shahrokh Saeednia, Steve Kremer và Olivier Markowitch: Lược đồ chữ ký người thẩm định được chỉ định mạnh, hiệu quả.

- Năm 2004:+ Beno Libert và Jean-Jacques Quisquater: Chữ ký số chống chối bỏ dựa trên định danh.

+ Shafi Goldwasser, Erez Waisbard: Việc chuyển đổi từ lược đồ chữ ký số sang chữ ký người xác thực được chỉ định.

+ Fabien Laguillaumie, Damien Vergnaud: Chữ ký nhiều người thẩm định được chỉ định.

+ Jean Monnerat và Serge Vaudenay: Chữ ký chống chối bỏ dựa trên ký tự.

+ Jean Monnerat và Serge Vaudenay: Chữ ký chống chối bỏ đồng hình tổng quát.

+ Ron Steinfeld, Huaxiong Wang, Josef Pieprzyk: Nâng cao hiệu quả của chữ ký Schnorr/RSA chuẩn trong lược đồ chữ ký người thẩm định được chỉ định tổng thể.

- Năm 2005:+ Joonsang Baek, Reihaneh Safavi-Naini và Willy Susilo: Chứng minh chữ ký người thẩm định được chỉ định tổng thể.

+ Craig Gentry, David Molnar, Zulfikar Ramzan: chữ ký người xác thực được chỉ định hiệu quả không cần mô hình tiên tri ngẫu nhiên hoặc chứng minh giao thức Zero-Knowledge tổng quát.

+ Kaoru Kurosawa, Swee-Huay Heng: Chữ ký chống chối bỏ 3-Move. + Fabien Laguillaumie, Damien Vergnaud: Chữ ký chống chối bỏ có thể chuyển đổi với thời gian được lựa chọn.

+Fabien Laguillaumie, Pascal Paillier và Damien Vergnaud: Chữ ký số trực tiếp có thể chuyển đổi tổng thể.

+ Wakaha Ogata, Kaoru Kurosawa và Swee-Huay Heng: Độ an toàn của biến thể FHD của lược đồ chữ ký số chống chối bỏ Chaum’s .

+ Guilin Wang: Lược đồ ký uỷ nhiệm người thẩm định được chỉ định. + Rui Zhang II, Jun Furukawa, Hideki Imai: Chữ ký người thẩm định được chỉ định tổng thể và chữ ký ngắn không cần mô hình tiên tri ngẫu nhiên.

- Năm 2006:+ Kaoru Kurosawa và Swee-Huay Hen: Nghiên cứu về những vấn đề liên quan đến an ninh của lược đồ chữ ký số chống chối bỏ.

+ Xinyi Huang, Willy Susilo, Yi Mu, Futai Zhang: Lược đồ chữ ký người thẩm định được chỉ định mạnh ngắn (dựa trên định danh).

+ Kaoru Kurosawa và Tsuyoshi Takagi: Cách tiếp cận mới về việc lựa chọn lược đồ chữ ký số có thể chuyển đổi.

+ Fabien Laguillaumie, Beno Libert, Jean-Jacques Quisquater: Chữ ký người thẩm định được chỉ định tổng thể không có mô hình tiên tri ngẫu nhiên.

+ Jean Monnerat và Serge Vaudenay: Chữ ký chống chối bỏ ngắn 2 . 4.3 LƯỢC ĐỒ CHỮ KÝ CHỐNG CHỐI BỎ

Lược đồ chữ ký chống chối bỏ đầu tiên được Chaum và van Antverpen đề xuất năm 1989.

Chọn một số nguyên tố dạng Sophie Germain p =2q +1, trong đó q cũng là số nguyên tố; chọn α Є Z*

p là một phần tử cấp q. Gọi G là nhóm con (theo phép nhân) cấp q sinh bởi α của Z*

p.

Lược đồ chữ ký Chaum - van Antverpen của A gồm có:  = =G, cặp khoá k =(k’,k'') gồm có khoá bí mật k’ = a < p -1 và khoá công khai k'' = (p,α, β) với β = αa mod p.

Thuật toán ký: A ký trên văn bản x ∈  =G với chữ ký y = sigk’ (x) = xa mod p.

Giao thức kiểm thử: Với văn bản x và chữ ký y người nhận B cùng người ký A thực hiện giao thức kiểm thử sau đây:

1 - B chọn ngẫu nhiên hai số e1, e2∈ Z*

q, tính c = ye1.βe2 mod p và gửi c cho A 2 - A tính d c= a−1modq

mod p và gửi d cho B. (adsbygoogle = window.adsbygoogle || []).push({});

3 - B chấp nhận y là chữ ký của A trên x nếu d = xe1.αe2 mod p . Giao thức chối bỏ: gồm các bước sau đây

1 - B chọn ngẫu nhiên 2 số e1, e2∈ Z*

q tính c = ye1.βe2 mod p và gửi c cho A, 2 - A tính d c= a−1modq

mod p và gửi d cho B, 3 - B thử điều kiện d ? xe1.αe2 mod p. 4 - B chọn tiếp hai số f1, f2∈ Z*

q tính C = yf1.βf2 mod p và gửi C cho A, 5 – A tính D C= a−1modq

mod p và gửi D cho B, 6 - B thử điều kiện D ? xf1.αf2 mod p.

7 - B kết luận y là chữ ký giả mạo, nếu (dα-e2)f1 ≡ (Dα-f2)e1 (mod p).

4.3.2 Tính hợp thức của các giao thức

Ta sẽ chứng minh hai định lý sau đây để chứng tỏ tính hợp thức của các giao thức kiểm thử và chối bỏ của lược đồ chữ ký Chaum-van Antverpen.

Định lý 4.1:

a) Nếu y đúng là chữ ký của A trên x, tức y ≡xa mod p, thì việc B chấp nhận y là chữ ký của A trên x theo giao thức kiểm thử là đúng.

b) Nếu y ≢ xa(mod p), tức y không phải là chữ ký của A trên x, thì việc B, theo giao thức kiểm thử, chấp nhận y là chữ ký của A trên x, có thể xẩy ra với xác suất 1/q.

Chứng minh:

a) Giả sử y ≡ xa mod p. Khi đó, ya-1≡ x (mod p) (các số mũ đều được tính theo mod q). Ta cũng có βa-1 ≡ α (mod p) Do đó, 1 1 1 1 2 1 2 e a e a e e a d cy − β − x α ≡ ≡ ≡ (mod p),

và theo giao thức kiểm thử, B chấp nhận y là chữ ký của A trên x, việc chấp nhận đó là đúng.

b) Bây giờ giả thử y ≢ xa (mod p). Trước hết ta chú ý rằng mỗi lời mời hỏi c tương ứng với đúng q cặp (e1, e2), vì y và β là các phần tử của nhóm nhân G cấp q. Khi A nhận được câu hỏi c , A không có cách gì để biết là B đã dùng cặp (e1, e2) nào trong q cặp có thể đó. Ta chứng minh rằng, do y ≢ xa (mod p), nên trong q cặp

đó chỉ có đúng một cặp thoả mãn đồng dư thức d ≡ xe1 αe2 (mod p). Thực vậy, ta có thể đặt c = αi , d = αj , x = αk , y = αl (với i, j, k, l ∈ Zq ), vì α là phần tử sinh của G, và hai đồng dư thức c ≡ ye1 βe2 (mod p) và d ≡ xe1αe2 (mod p) tương đương với hai phương trình 1 2 1 2 ( ( i le ae e e ≡ + ≡ + q j k q . mod ) mod )

Từ giả thiết y ≢ xa (mod p) suy ra l – ak ≢ 0 (mod q), tức định thức của hệ phương trình nói trên (với các ẩn số e1, e2) là ? 0 (mod q). Như vậy, mỗi d ∈G là câu trả lời đúng (theo giao thức kiểm thử) chỉ với một cặp (e1, e2) trong q cặp có thể. Vì vậy, nếu y ≢ xa (mod p) , thì xác suất để B chấp nhận y là chữ ký của A trên x (theo giao thức) là bằng 1/q. Định lý được chứng minh.

Đối với giao thức chối bỏ, ta có định lý sau đây :

Định lý 4.2:

a) Nếu y ≢ xa (mod p), và cả A, B đều tuân theo giao thức chối bỏ, thì (dα- e2)f1 ≡ (Dα-f2)e1 (mod p), tức giao thức cho kết quả chính xác.

b) Nếu y ≡ xa mod p, A và B đều tuân theo giao thức, và có d ≢ xe1αe2 (mod p)

Khi đó, đồng dư thức (dα-e2)f1 ≡ (Dα-f2)e1 (mod p) đúng với xác suất 1/q , tức nếu y đúng là chữ ký của A trên x, thì theo giao thức, B có thể kết luận rằng nó là giả mạo (một cách sai lầm) với xác suất 1/q.

Chứng minh. a) Giả thử y ≢ xa (mod p), và A,B cùng thực hiện giao thức chối bỏ. Do y không là chữ ký của A trên x nên B sẽ kiểm thử đúng các bất đồng dư thức trong các bước 3 và 6 của giao thức. Vì β ≡ αa (mod p), nên ta có

1 2 1 1 2 2 1 (dα−e )f ≡((yeβe )a−α−e )f (mod p) ≡ ya e f−11 1βe a f2 −11α−e f2 1(mod p) 1 1 1 e a f y − ≡ (mod p). Tương tự, ta cũng có 1 2 1 1 1 (Dα−f )eye a f− (mod p).

Như vậy, đồng dư thức ở điểm 7 của giao thức được nghiệm đúng, và kết luận y là chữ ký giả mạo của A trên x là chính xác, không thể bác bỏ được.

b) Bây giờ giả thiết y ≡ xa (mod p), và A, B cùng thực hiện giao thức chối bỏ.

Đặt x0 = d1/e1α-e2/e1 mod p , ta có

x0 = da/e1α-ae2/e1 ≢ (xe1 αe2)a/e1 α-ae2/e1 ≡ xa ≡ y (mod p)

Theo điểm b) trong định lý 4.2, B có thể chấp nhận y là chữ ký của A trên x0, tức là có đồng dư thức (adsbygoogle = window.adsbygoogle || []).push({});

D ≡ x0f1 αf2 (mod p),

với xác suất 1/q. Nhưng đồng dư thức đó tương đương với đồng dư thức

(dα-e2)f1 ≡ (Dα-f2)e1 (mod p),

tức đồng dư thức này cũng có thể xẩy ra với xác suất 1/q. Định lý được chứng minh. Ta chú ý rằng trong giao thức chối bỏ, cặp (e1, e2) được sử dụng để tạo ra x0

với x0a ≢ y (mod p); còn cặp (f1, f2) được dùng để kiểm thử xem y có là chữ ký của A trên x0 hay không.

4.3.3 Độ an toàn của Lược đồ chữ ký Chaum-van Antverpen

Trong thực tế ứng dụng, để bảo đảm tính an toàn, ta phải dùng các số p, q rất lớn, chẳng hạn phải là các số có biểu diễn nhị phân cỡ 512 bit, khi đó ta có q ≥ 2510, tức là 1/q ≤ 2-510, một xác suất rất bé, có thể bỏ qua; và vì vậy, các yêu cầu đối với các giao thức kiểm thử và giao thức chối bỏ như đề cập đến như trên có thể xem là được thoả mãn.

Năm 1991, Y. Desmedt và M. Yung đã chỉ ra một số điểm yếu của lược đồ chữ ký chống chối bỏ ban đầu [29] (của D. Chaum và H.van Antwerpen), Những điểm yếu này tập trung khai thác giao thức thẩm định chữ ký trong đó có sự kết hợp giữa người ký và người thẩm định.

4.4 MỘT SỐ BIẾN THỂ CỦA LƯỢC ĐỒ CHỮ KÝ CHỐNG CHỐI BỎ

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

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, (adsbygoogle = window.adsbygoogle || []).push({});

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ột phần của tài liệu tìm hiểu chữ ký số và ứng dụng của nó (Trang 67 - 97)