TIỂU LUẬN AN NINH CƠ SỞ DỮ LIỆU: CHỮ KÝ KHÔNG THỂ PHỦ NHẬN

9 732 4
TIỂU LUẬN AN NINH CƠ SỞ DỮ LIỆU: CHỮ KÝ KHÔNG THỂ PHỦ NHẬN

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

Thông tin tài liệu

CHỮ KÝ KHÔNG THỂ PHỦ NHẬN 1. Khái niệm chữ ký không thể phủ nhận Chữ ký số, không giống như chữ ký trên giấy, nó có thể dễ dàng bị sao chép một cách chính xác. Thuộc tính này có thể có lợi cho những ứng dụng cần sự phổ biến rộng rãi của các thông báo cùng với khóa công khai, khi mà càng nhiều bản sao chép được phát ra càng tốt. Tuy nhiên, nó không phù hợp với nhiều ứng dụng khác. Ví dụ ứng dụng chữ ký điện tử thay thế cho ứng dụng mang tính cá nhân hoặc nhạy cảm như bản cam kết viết tay hoặc bằng miệng. Trong những trường hợp này, sự phổ biến của bản sao chép có thể làm cho người dùng không hợp lệ thực hiện các hành vi như tống tiền hoặc gián điệp. Người nhận của những cam kết này có thể chắc chắn rằng người ký cam kết này sau này không thể chối bỏ nó, nhưng người nhận không thể đưa ra bản cam kết này cho bất kỳ ai khác khi không có sự đồng thuận của người ký. Chữ ký không thể chối bỏ phù hợp với các ứng dụng như ở trên. Chữ ký không thể chối bỏ, giống như chữ ký số thông thường, là một số được đưa ra bởi người ký, phụ thuộc vào khóa bí mật của người ký và thông điệp cần ký. Tuy nhiên, không giống như chữ ký số thông thường, kiểm tra chữ ký không thể chối bỏ phải có sự hợp tác của người ký. Tính hợp lệ của chữ ký không thể chối bỏ có thể được kiểm tra (bởi bất kỳ ai) bằng cách đưa ra các giá trị hỏi (challenge) cho người ký, và người ký sẽ đưa ra các giá trị đáp lại (response). Nếu kiểm tra là sai, có hai trường hợp xảy ra: (a) chữ ký là không hợp lệ hoặc (b) người ký cố tình đưa ra các giá trị đáp sai để cố tình chối bỏ một chữ ký do anh ta ký. Tuy nhiên cho dù người ký có máy tính với năng lực tính toán vô hạn, người kiểm thử chữ ký có thể phân biệt được trường hợp (a) và (b) với độ chắc chắn cao bằng giao thức hỏi đáp thứ hai. 1.1. Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen 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ỏ. 1. 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 Zp 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 = ga mod p. + G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của

CHỮ KÝ KHÔNG THỂ PHỦ NHẬN 1. Khái niệm chữ ký không thể phủ nhận Chữ ký số, không giống như chữ ký trên giấy, nó có thể dễ dàng bị sao chép một cách chính xác. Thuộc tính này có thể có lợi cho những ứng dụng cần sự phổ biến rộng rãi của các thông báo cùng với khóa công khai, khi mà càng nhiều bản sao chép được phát ra càng tốt. Tuy nhiên, nó không phù hợp với nhiều ứng dụng khác. Ví dụ ứng dụng chữ ký điện tử thay thế cho ứng dụng mang tính cá nhân hoặc nhạy cảm như bản cam kết viết tay hoặc bằng miệng. Trong những trường hợp này, sự phổ biến của bản sao chép có thể làm cho người dùng không hợp lệ thực hiện các hành vi như tống tiền hoặc gián điệp. Người nhận của những cam kết này có thể chắc chắn rằng người ký cam kết này sau này không thể chối bỏ nó, nhưng người nhận không thể đưa ra bản cam kết này cho bất kỳ ai khác khi không có sự đồng thuận của người ký. Chữ ký không thể chối bỏ phù hợp với các ứng dụng như ở trên. Chữ ký không thể chối bỏ, giống như chữ ký số thông thường, là một số được đưa ra bởi người ký, phụ thuộc vào khóa bí mật của người ký và thông điệp cần ký. Tuy nhiên, không giống như chữ ký số thông thường, kiểm tra chữ ký không thể chối bỏ phải có sự hợp tác của người ký. Tính hợp lệ của chữ ký không thể chối bỏ có thể được kiểm tra (bởi bất kỳ ai) bằng cách đưa ra các giá trị hỏi (challenge) cho người ký, và người ký sẽ đưa ra các giá trị đáp lại (response). Nếu kiểm tra là sai, có hai trường hợp xảy ra: (a) chữ ký là không hợp lệ hoặc (b) người ký cố tình đưa ra các giá trị đáp sai để cố tình chối bỏ một chữ ký do anh ta ký. Tuy nhiên cho dù người ký có máy tính với năng lực tính toán vô hạn, người kiểm thử chữ ký có thể phân biệt được trường hợp (a) và (b) với độ chắc chắn cao bằng giao thức hỏi đáp thứ hai. 1.1. Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen 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ỏ. 1/. 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 + Khóa công khai được định nghĩa pk = ( p, g, h ), khóa bí mật sk = a. 2/. 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 3/. 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 4/. 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 - Bob kết luận chữ ký y thực sự là giả mạo nếu: mod p 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ý. 1/. 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 2/. 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. 3/. 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. 4/. Giao thức chối bỏ chữ ký 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. 1.3. Một số đánh giá về sơ đồ 1.3.1. Độ 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. 1.3.2. 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 ), 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. 1.3.3. 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) ≡ ( 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. Các hình thức tấn công chữ ký không thể phủ nhận Trong [8], 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: 2.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 1: Eve thông báo cho các đối thủ của Alice biết cô ta có một số thông tin mà họ cần. Cô ta đưa cho mỗi đối thủ {Enemy i }( i = 1 – n ) cặp giá trị {y, h} và yêu cầu mỗi đối thủ tạo hai số bí mật ai, bi sau đó tính bí mật c i = y a1 h bj và đưa giá trị c i cho Eve. - Bước 2: Eve cũng tạo bí mật cặp (a 0 , b 0 ), tính c 0 = y ao h bo . - Bước 3: Eve tính c = . Sau đó, Eve bằng cách nào đó yêu cầu Alice ký lên một thông điệp x’ bất kỳ, thu được chữ ký y’. Thay vì xác thực chữ ký x’, Eve xác thực chữ ký trên x. Alice không thể biết được điều này bởi vì cặp giá trị ngẫu nhiêu trong giao thức hỏi đáp là do người xác thực chữ ký thực hiện. Sau khi gửi giá trị c cho Alice, Eve nhận được d = x e1 g e2 trong đó e1 = và e2 = ( vào thời điểm này, Eve không biết các giá trị a i , b i ). - Bước 4: Alice yêu cầu các đối thủ của Alice đưa cho cô ta cặp giá trị (a i , b i ). Eve thông báo cho Alice biết cô ta đã có được thông điệp x và có thể cô ta sẽ nói với các đối thủ của Alice. Nếu Alice không thực hiện theo những gì Eve nói, Eve sẽ thực hiện bước 5 như sau: Bước 5: Ở bước này, Eve đưa ( ) cho tất cả các đối thủ . Khi đó {Enemy} i có thể thấy cặp (a i , b i ) được dùng trong tập {a i }{b i } dùng để xác thực chữ ký. Vì thế họ tin rằng Alice đã kí lên thông điệp x. 2.2. Nhiều người cùng xác thực chữ ký mà người ký không biết Eve là người đứng ra xác thực, cô ta tính c = từ các giá trị c i = y ai h bi mà 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 d từ Alice, Eve gửi ( , , d) cho những người vừa gửi c i đến cho Eve. Tất cả những người này đã xác thực được chữ ký mà Alice không hề hay biết. Thật vậy: c = = = y => e1 = và e2 = . 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. 3. Ứng dụng chữ ký không thể phủ nhận 3.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ữ 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à chủ sở hữu của những hàng hóa đó. 3.2. Ứng dụng trong ký hợp đồng qua điện thoại Một ví dụ khác được minh họa trong [11]. Bài báo trình bày về sự không chối cãi của cuộc hội thoại VoIP ( Voice – over –IP ). Do sự sử dụng rộng rãi của VoIP, sẽ là một sự tiện lợi nếu chúng ta ghi âm cuộc hội thoại và coi như 1 bản hợp đồng giữa hai tổ chức. Một bản hợp đồng miệng có tính ràng buộc như một bản hợp đồng trên giấy, tuy nhiên hợp đồng trên giấy thường được sử dụng rộng rãi hơn bởi vì có chữ ký của hai bên nên sẽ dễ dàng xử lý khi có tranh chấp. Vì thế nếu chúng ta ghi âm cuộc hội thoại dưới dạng số và ký trên nó, thì đoạn ghi âm có thể được sử dụng như bằng chứng nếu có tranh chấp. Khi đó nó có sức thuyết phục không kém gì hợp đồng trên giấy. Ở đây, chữ ký không thể chối bỏ là một sự lựa chọn tốt, bởi vì nó chỉ liên quan đến hai tổ chức, không cần phát tán ra bên ngoài. Khi đó mỗi tổ chức dùng khóa 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ả. . CHỮ KÝ KHÔNG THỂ PHỦ NHẬN 1. Khái niệm chữ ký không thể phủ nhận Chữ ký số, không giống như chữ ký trên giấy, nó có thể dễ dàng bị sao chép một cách chính xác. Thuộc tính này có thể có. thức tấn công chữ ký không thể phủ nhận Trong [8], 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: 2.1. Tống tiền người ký Giả sử Alice ký chữ ký y trên thông. nhưng người nhận không thể đưa ra bản cam kết này cho bất kỳ ai khác khi không có sự đồng thuận của người ký. Chữ ký không thể chối bỏ phù hợp với các ứng dụng như ở trên. Chữ ký không thể chối

Ngày đăng: 21/08/2014, 15:38

Từ khóa liên quan

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

Tài liệu liên quan