Tiểu luận Mật mã và An toàn dữ liệu CHỮ KÝ KHÔNG THỂ PHỦ NHẬN

16 513 4
Tiểu luận Mật mã và An toàn dữ liệu CHỮ KÝ KHÔNG THỂ PHỦ NHẬN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tiểu luận Mật mã và An toàn dữ liệu CHỮ KÝ KHÔNG THỂ PHỦ NHẬN Trong các sơ đồ chữ ký điện tử, việc kiểm thử tính đúng đắn của chữ ký là do người nhận tiến hành. Như vậy, cả văn bản cùng chữ ký có thể được sao chép và phát tán cho nhiều người mà không được phép của người gửi. Để tránh khả năng đó, người ta đưa ra các sơ đồ chữ ký không thể phủ nhận được với yêu cầu là chữ ký không thể được kiểm thử nếu không có sự hợp tác của người ký. Sự hợp tác đó được thể hiện qua giao thức kiểm thử (giao thức xác nhận): người nhận hỏi, người gửi trả lời.

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ KHOA CÔNG NGHỆ THÔNG TIN SEMINAR Môn học: Mật mã và An toàn dữ liệu CHỮ KÝ KHÔNG THỂ PHỦ NHẬN Giảng viên: PGS.TS. Trịnh Nhật Tiến Học viên: Nguyễn Viết Minh ` Mã học viên: 12025060 Chữ ký không thể phủ nhận Hà Nội, tháng 05 năm 2014 Nguyễn Viết Minh Page 2 Chữ ký không thể phủ nhận MỤC LỤC 2.1.3.Một số đánh giá về sơ đồ 8 Độ an toàn của chữ ký 8 4.3.Chương trình demo 14 Nguyễn Viết Minh Page 3 Chữ ký không thể phủ nhận 1. Giới thiệu chữ ký không thể phủ nhận Trong các sơ đồ chữ ký điện tử, việc kiểm thử tính đúng đắn của chữ ký là do người nhận tiến hành. Như vậy, cả văn bản cùng chữ ký có thể được sao chép và phát tán cho nhiều người mà không được phép của người gửi. Để tránh khả năng đó, người ta đưa ra các sơ đồ chữ ký không thể phủ nhận được với yêu cầu là chữ ký không thể được kiểm thử nếu không có sự hợp tác của người ký. Sự hợp tác đó được thể hiện qua giao thức kiểm thử (giao thức xác nhận): người nhận hỏi, người gửi trả lời. Khi chữ ký đòi hỏi được xác nhận bằng một giao thức kiểm thử thì một vấn đề nảy sinh là làm sao có thể ngăn cản người ký chối bỏ một chữ ký mà anh ta đã ký? Để đáp ứng yêu cầu đó, cần có thêm một giao thức chối bỏ. Thông qua giao thức này, người ký có thể chứng minh một chữ ký không phải là chữ ký của mình. Nếu anh ta từ chối không tham gia giao thức đó thì có bằng chứng là anh ta không chứng minh được chữ ký đó là giả mạo, tức là anh ta không chối bỏ được chữ ký của mình. Một sơ đồ chữ ký không thể phủ nhận có 3 phần: - Thuật toán ký - Thuật toán kiểm tra (giao thức xác nhận, kiểm thử ) - Một giao thức chối bỏ 2. Một số sơ đồ chữ ký không thể phủ nhận 2.1. Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen 2.1.1. Giới thiệu sơ đồ Sơ đồ chữ ký không thể chối bỏ được David Chaum và Hans van Antwerpen đề xuất năm 1989. Sơ đồ gồm 3 phần: thuật toán ký, giao thức kiểm thử và giao thức chối bỏ. • Chuẩn bị các tham số + Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z p là khó giải, đồng thời thỏa mãn điều kiện p = 2 * q + 1, q cũng là nguyên tố. + Chọn g ∈ là phần tử có cấp q. + Chọn 1 ≤ a ≤ q – 1, tính h = g a mod p. + G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của + Tập hữu hạn các văn bản có thể P, tập hữu hạn các chữ ký có thể A + P = A = G Nguyễn Viết Minh Page 4 Chữ ký không thể phủ nhận + Khóa công khai được định nghĩa pk = ( p, g, h ), khóa bí mật sk = a. • Thuật toán ký Dùng khóa bí mật sk ở trên để ký lên thông điệp x, chữ ký là: y = sig sk ( x ) = x a mod p • Giao thức kiểm thử Bob muốn xác thực chữ ký y trên thông điệp x được ký bởi Alice. Giao thức được thực hiện như sau: - Bob chọn ngẫu nhiên e 1 , e 2 ∈ - Bob tính c = mod p và gửi cho Alice. - Alice tính d = mod p và gửi cho Bob. - Bob chấp nhận y là chữ ký đúng trên x khi và chỉ khi d ≡ mod p • Giao thức chối bỏ chữ ký - Bob chọn ngẫu nhiên e 1 , e 2 ∈ - Bob tính c = mod p và gửi cho Alice. - Alice tính d = mod p và gửi cho Bob. - Bob kiểm tra d ≢ mod p - Bob chọn ngẫu nhiên f 1 , f 2 ∈ - Bob tính C = mod p và gửi cho Alice - Alice tính D = mod p và gửi cho Bob - Bob kiểm tra D ≢ mod p Nguyễn Viết Minh Page 5 Chữ ký không thể phủ nhận - Bob kết luận chữ ký y thực sự là giả mạo nếu: mod p 2.1.2. Ví dụ minh họa Trong ví dụ này, Alice là người ký, Bob là người cần xin chữ ký. • Chuẩn bị các tham số Alice chuẩn bị các tham số cho việc ký - Chọn số nguyên tố p = 59747 = 2 * q + 1, q = 29873 cũng là số nguyên tố - G là nhóm nhân con của cấp q. Chọn phần tử sinh của nhóm G là g = 3. - Đặt P = A = G, K = {(p, g, a, h ): a ∈ , h ≡ g a mod p } Chọn a = 11, h = 3 11 mod 59747 = 57653 • Thuật toán ký Dùng khóa bí mật sk = a để ký lên x = 229 Chữ ký thu được là y = sig sk (x) = x a mod p = 229 11 mod 59747 = 30179. • Giao thức kiểm thử chữ ký Dùng khóa công khai pk = ( p, g, h ) = ( 59747, 3, 57653 ) - Bob chọn ngẫu nhiên e 1 = 11, e 2 = 15 ∈ - Bob tính c = mod p = 30179 11 57653 15 mod 59747 = 55601 - Alice tính d = mod p = mod 59747 = 43319 - Bob kiểm tra điều kiện d ≡ mod p Có mod p = 229 11 3 15 mod 59747 = 43319 ≡ 43319 mod 59747 → Bob kết luận chữ ký là đúng. • Giao thức chối bỏ chữ ký Nguyễn Viết Minh Page 6 Chữ ký không thể phủ nhận Giả sử Bob gửi tài liệu x = 229, với chữ ký y = 30178 - Bob chọn ngẫu nhiên e1 = 11, e2 = 15 ∈ - Bob tính c = mod p = 30178 11 57653 15 mod 59747 = 19071 - Alice tính d = mod p = mod 59747 = 33692 - Bob kiểm tra điều kiện d ≡ mod p Có = 229 11 3 15 mod 59747 = 43319 ≠ 33692 mod 59747 => Bob thực hiện tiếp Bob chọn ngẫu nhiên f1 = 17, f2 = 19 ∈ - Bob tính C = mod p = 30178 17 57653 19 mod 59747 = 9217 và gửi cho Alice - Alice tính D = mod p = mod 59747 = 33028 và gửi cho Bob - Bob kiểm tra D ≢ mod p - Bob kiểm tra: (dg -e2 ) f1 ≡ (Dg -f2 ) e1 (mod p) Có (dg -e2 ) f1 mod p = (33692 * 3 -15 ) 17 (mod 59747) = 40635 (Dg -f2 ) e1 ( mod p ) = (33028 * 3 -19 ) 11 ( mod 59747 ) = 40635  (dg -e2 ) f1 ≡ (Dg -f2 ) e1 (mod p)  Bob kết luận chữ ký là giả mạo Ví dụ này được trình bày với mục đích minh họa, nên chỉ sử dụng các số nguyên tố p, q nhỏ. Trong thực tế ứng dụng, để đảm bảo an toàn, người ta dùng các số p, q rất lớn, chẳng hạn các số có biểu diễn nhị phân cỡ 512 bits. Khi đó ta có q ≥ 2 512 tức là 1/q ≤ 2 −512 , 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ư trong phần đặt vấn đề có thể xem như là được thỏa mãn. Nguyễn Viết Minh Page 7 Chữ ký không thể phủ nhận 2.1.3. Một số đánh giá về sơ đồ • Độ an toàn của chữ ký Độ an toàn của hệ thống phụ thuộc vào bài toán logarit rời rạc do khóa bí mật sk = a được tính từ công thức h = g a mod p => a = log g h mod p, trong đó g, h, p là công khai. Đây chính là vấn đề của bài toán logarit rời rạc khó giải. • Chứng minh tính đúng đắn của giao thức xác thực 1/. Kết luận 1 Nếu y đúng là chữ ký của Alice trên x ( tức là y ≡ x a mod p ), thì việc Bob chấp nhận y là chữ ký của Alice trên x theo giao thức kiểm thử là đúng Chứng minh Giả sử y là chữ ký hợp lệ trên x. Bắt đầu từ giá trị d mà Bob nhận từ Alice: d = mod p = mod p (1) - Lại có y ≡ x a mod p => ≡ x mod p (2) h ≡ g a mod p => ≡ g mod p (3) Từ (1) (2) (3) => d ≡ x e1 g e2 mod p là điều kiện đúng để Bob chấp nhận một chữ ký là đúng. 2/. Kết luận 2 Trong trường hợp y ≠ x a (mod p), tức y không phải là chữ ký của Alice trên x thì việc Bob, theo giao thức kiểm thử, chấp nhận chữ ký y là chữ ký của Alice trên x, có thể xảy ra với xác suất là 1/q. Chứng minh - Giá trị c mà Alice nhận được quyết định bởi sự lựa chọn 2 giá trị e1, e2. - y, h là phần tử trong G cấp q => mỗi giá trị c tương ứng với q cặp (e1,e2 ) - Khi Alice nhận được c từ Bob, Alice không có cách gì để biết là Bob đã dùng cặp (e1, e2) nào trong q cặp có thể đó. Chúng ta sẽ chứng minh rằng, nếu y ≠ x a mod p, bất kỳ giá trị d nào mà Alice trả lại cho Bob tương ứng với duy nhất 1 trong q cặp ( e1, e2 ), Nguyễn Viết Minh Page 8 Chữ ký không thể phủ nhận tức là trong q cặp đó chỉ có đúng một cặp (e1, e2) thỏa mãn đồng dư thức d ≡ x e1 g e2 (mod p). Thật vậy: + g là phần tử sinh của nhóm G theo modulo q. Vì thế chúng ta có thể viết lại như sau: c = g i mod q, d = g j mod q, x = g k mod q, y = g l mod q trong đó i, j, k, l ϵ Zq. + Kết hợp với c ≡ y e1 h e2 (mod p) d ≡ x e1 g e2 (mod p) (I) Do giả thiết y ≠ x a ( mod p ) => l ≢ ak ( mod q ) => Định thức của ma trận hệ số của (I) với các ẩn số e1, e2 là khác 0 => (I) có nghiệm duy nhất => bất kỳ d ∈ G là giá trị đáp ( response ) của chỉ một trong q cặp giá trị có thể ( e1, e2 ) => Xác suất để Alice đưa ra giá trị đáp đúng cho Bob trong quá trình xác thực chữ ký là 1/q. Nhận định đưa ra đã được chứng minh. • Chứng minh tính đúng đắn của giao thức chối bỏ 1/. Kết luận 1  Nếu y ≠ x a mod p và cả Alice và Bob đều tuân theo giao thức chối bỏ, thì (dg - e2 ) f1 ≡ (Dg -f2 ) e1 (mod p) tức giao thức cho kết quả chính xác. Chứng minh Giả sử y ≠ x a (mod p), Alice và Bob cùng thực hiện giao thức chối bỏ. Do y không là chữ ký của Alice trên x nên Bob 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ì h ≡ g a (mod p), nên ta có: (dg -e2 ) f1 ≡ (mod p) Nguyễn Viết Minh Page 9 Chữ ký không thể phủ nhận ≡ ( mod p ) ≡ ( mod p ) Tương tự ta cũng có: (Dg -f2 ) e1 ≡ ( mod p ) Như vậy, đồng dư thức ở bước 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 . 2/. Kết luận 2 Một điều thú vị có thể xảy ra khi Alice cố tình muốn chối bỏ một chữ ký của mình bằng cách không tuân theo giao thức hỏi – đáp một cách trung thực. Alice có thể làm cho Bob nghĩ rằng chữ ký thực sự là giả mạo trong khi không phải như thế. Dưới đây xin nêu ra 1 kết luận như sau: Xác suất để Alice chối bỏ một chữ ký đúng của anh ta là 1/q Chứng minh Nếu Alice cố gắng lừa Bob để Bob nghĩ rằng chữ ký đó là giả mạo, có nghĩa là những điều kiện sau đây đồng thời xảy ra: y ≡ x a mod p (1) d ≢ x e1 g e2 mod p (2) D ≢ x f1 g f2 mod p (3) (dg -e2 ) f1 ≡ (Dg -f2 ) e1 (mod p) (4) Điều kiện (4) có thể được viết lại như sau: D ≡ d o f1 g f2 (mod p) trong đó x = do = d 1/e1 g -e2/e1 mod p mod p (5) Như trong phần trình bày trước, chúng ta kết luận rằng y là chữ ký hợp lệ của d o với xác suất 1 – 1/q (do xác suất của việc chấp nhận chữ ký y ≠ x a mod p là 1/q) Do y là chữ ký hợp lệ của x, x = d o => (2)  x ≢ d 1/e1 g -e2/e1 mod p Lại có d o = d 1/e1 g -e2/e1 mod p Từ 2 điều trên => x ≠ d o . Điều này có nghĩa là Alice làm cho Bod nghĩ rằng y là giả mạo với xác suất 1/q. 2.2. Sơ đồ chữ ký không thể phủ nhận dựa trên chữ ký ElGammal Nguyễn Viết Minh Page 10 [...]... Bình (3) Bình gửi cho An a và b Nguyễn Viết Minh Page 11 Chữ ký không thể phủ nhận (4) An xác nhận rằng c = T Tma g b mod p Và gửi k cho Bình (5) Bình xác nhận rằng h1 = T Tma g b + k mod p và h2 = y ra r sa u b + k mod p An có thể chuyển tất cả chữ ký không thể phủ nhận của cố ấy thành chữ ký thông thường bởi cách công bố z Giờ thì bất cứ ai cũng có thể xác nhận chữ ký của cô ấy mà không cần sự giúp... khóa mới là cái bí mật, độ an toàn của hệ thống không dựa vào độ an toàn của công nghệ mà chính là khóa Nguyễn Viết Minh Page 15 Chữ ký không thể phủ nhận TÀI LIỆU THAM KHẢO [1] Phan Đình Diệu (2002), Lý thuyết mật mã và an toàn thông tin, NXB Đại học Quốc gia Hà Nội, Hà Nội [2] Phạm Huy Điển (2003), Mã hóa thông tin [3] Alfred J Menezes Paul C van Ooschot Scott A Vanstone (1998): Handbook of Applied... bí mật của mình ký lên đoạn ghi âm Khi đó đoạn hội thoại cùng với 2 chữ ký của 2 tổ chức lên đoạn hội thoại chính là hợp đồng Bởi vì đoạn hội thoại đã được ký lên, không ai có thể thay đổi nó hoặc tạo ra một chữ ký giả Nguyễn Viết Minh Page 13 Chữ ký không thể phủ nhận 4.3 Chương trình demo Chương trình sử dụng sơ đồ ký Chaum – Van Antwerpen với giao diện như sau: Nguyễn Viết Minh Page 14 Chữ ký không. .. không thể phủ nhận 5 Kết luận Vấn đề chữ ký không thể phủ nhận là một trong những vấn đề khó trong lĩnh vực mật mã học Nó là một vấn đề không mới, đang được phát triển ở nước ta hiện nay và có nhiều công việc cần giải quyết nếu muốn xây dựng một hệ thống ký số điện tử đạt tiêu chuẩn quốc gia Hướng tiếp cận theo mật mã học khóa công khai là hướng tiếp cận dựa vào yêu cầu thực tế công nghệ là công khai và. .. được chữ ký mà Alice không hề hay biết Thật vậy: c = => e1 = = và e2 = =y Khi đó tất cả những người gửi ci cho Eve kiểm tra được rằng (ai, bi) đã được sử dụng trong giao thức kiểm tra chữ ký, và chữ ký được kiểm tra như là liên hệ trực tiếp với Alice 4 Ứng dụng chữ ký không thể phủ nhận 4.1 Ứng dụng trong thẻ chứng minh thư điện tử Bởi vì quá trình xác thực một chữ ký cần sự cộng tác của người ký, chữ. .. nhiên, R, mà R là nhỏ hơn và nguyên tố cùng nhau với p-1 Sau đó tính r = g R mod p , và sử dụng thuật toán Euclid mở rộng để tính s, m' = Ttzm mod p Chữ ký là chữ ký ElGamal (r,s) và T Vậy bằng cách nào mà An xác nhận chữ ký của cô ấy với Bình: (1) Bình chọn 2 số ngẫu nhiên, a và b Sau đó anh ta tính c = T Tma g b và gửi nó cho An (2) An chọn 1 sốngẫu nhiên, k và tính h1 = cg k mod p và h2 = h1z mod p gửi.. .Chữ ký không thể phủ nhận Một thuật toán khác để chuyển đổi sơ đồ kí không thể phủ nhận, nhờ nó mà việc xác thực và chống chối bỏ có thể chuyển thành chữ kí điện tử thông thường Thuật toán này dựa trên chữ kí điện tử ElGamal Giống như chữ ký ElGamal, đầu tiên chọn 2 sốnguyên tố p và q mà (p=2q+1) Sau đó tạo ra một số g nhỏ hơn q Đầu tiên chọn một số ngẫu nhiên h, nằm trong khoảng 2 và p-1 Sau... {Enemy}i có thể thấy cặp (a i, bi) được dùng trong tập {a i}{bi} dùng để xác thực chữ ký Vì thế họ tin rằng Alice đã kí lên thông điệp x 3.2 Nhiều người cùng xác thực chữ ký mà người ký không biết Nguyễn Viết Minh Page 12 Chữ ký không thể phủ nhận từ các giá trị ci = yaihbi mà Eve là người đứng ra xác thực, cô ta tính c = những người muốn xác thực chữ ký gửi đến cho cô ta Eve gửi c cho Alice Sau khi nhận. .. cần sự giúp đỡ của cô ấy 3 Các hình thức tấn công chữ ký không thể phủ nhận Trong, Markus Jakobsson trình bày hai hình thức tấn công chữ ký không thể chối bỏ như sau: 3.1 Tống tiền người ký Giả sử Alice ký chữ ký y trên thông điệp x, nhưng không muốn để lộ thông tin về x cho các đối thủ của cô biết Người tống tiền Eve bằng cách nào đó, tìm được (x, y) và quyết định tống tiền Alice Eve thực hiện: - Bước... người ký, chữ ký không thể chối bỏ phù hợp với ứng dụng chứng minh thư điện tử Ở Bỉ người ta đã sử dụng chứng minh thư điện tử dựa trên chữ ký không thể chối bỏ [6] Một ví dụ minh họa, người A mua một vài hàng hóa qua mạng Internet và được chuyển về bưu điện địa phương cho A A ký vào văn bản online sử dụng chữ ký không thể chối bỏ, khi A tới bưu điện để lấy hàng hóa, A xác thực rằng anh ta chính là . kiện d ≡ mod p Có = 229 11 3 15 mod 59747 = 433 19 ≠ 33 692 mod 59747 => Bob thực hiện tiếp Bob chọn ngẫu nhiên f1 = 17, f2 = 19 ∈ - Bob tính C = mod p = 30 178 17 576 53 19 mod 59747 = 9217 và. g, h ) = ( 59747, 3, 576 53 ) - Bob chọn ngẫu nhiên e 1 = 11, e 2 = 15 ∈ - Bob tính c = mod p = 30 179 11 576 53 15 mod 59747 = 55601 - Alice tính d = mod p = mod 59747 = 433 19 - Bob kiểm tra. = mod 59747 = 33 028 và gửi cho Bob - Bob kiểm tra D ≢ mod p - Bob kiểm tra: (dg -e2 ) f1 ≡ (Dg -f2 ) e1 (mod p) Có (dg -e2 ) f1 mod p = (33 692 * 3 -15 ) 17 (mod 59747) = 40 635 (Dg -f2 ) e1

Ngày đăng: 20/10/2014, 00:53

Từ khóa liên quan

Mục lục

  • 2.1.3. Một số đánh giá về sơ đồ

  • Độ an toàn của chữ ký

  • 4.3. Chương trình demo

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan