Giáo trình Lý thuyết mật mã - Chương 9: Các sơ đồ định danh - Nguyễn Hoàng Cương
Bạn đang xem tài liệu "Giáo trình Lý thuyết mật mã - Chương 9: Các sơ đồ định danh - Nguyễn Hoàng Cương", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_ly_thuyet_mat_ma_chuong_9_cac_so_do_dinh_danh_ngu.pdf
Nội dung text: Giáo trình Lý thuyết mật mã - Chương 9: Các sơ đồ định danh - Nguyễn Hoàng Cương
- Vietebooks Nguyễn Hoàng Cương Ch−ơng 9 Các sơ đồ định danh 9.1 Giới thiệu. Các kỹ thuật mật mã cho phép nhiều bài toán d−ờng nh− không thể giải đ−ợc thành có thể giải đ−ợc. Một bài toán nh− vậy là bài toán xây dựng các sơ đồ định danh mật. Trong nhiều tr−ờng hợp cần thiết phải “chứng minh” bằng ph−ơng tiện điện tử danh tính của ai đó. D−ới đây là một số tr−ờng hợp điển hình: 1. Để rút tiền từ một máy thủ quỹ tự động (ATM), ta dùng thẻ cùng với số định danh cá nhân (PIN) có 4 chữ số. 2. Để trả tiền cho các cuộc mua bán trên điện thoại dùng thẻ tín dụng, tất cả đều cần số thẻ tín dụng (và thời hạn dùng thẻ) 3. Để trả tiền cho các cú gọi điện thoại đ−ờng dài (dùng thẻ gọi) chỉ cần số điện thoại và PIN 4 chữ số. 4. Để vào mạng máy tính, cần tên hợp lệ của ng−ời sử dụng và mật khẩu t−ơng ứng. Thực tế, các kiểu sơ đồ này th−ờng không đ−ợc thực hiện theo cách an toàn. Trong các giao thức thực hiện trên điện thoại, bất kì kẻ nghe trộm nào cũng có thể dùng thông tin định danh cho mục đích riêng của mình. Những ng−ời này cũng có thể là ng−ời nhận thông tin. Các m−u đồ xấu trên thẻ tín dụng đều hoạt động theo cách này. Thẻ ATM an toàn hơn một chút song vẫn còn những điểm yếu. Ví dụ, ai đó điều khiển đ−ờng dây liên lạc có thể nhận đ−ợc tất cả các thông tin đ−ợc mã hoá trên dải từ tính của thẻ cũng nh− thông tin về PIN. Điều này cho phép một kẻ mạo danh tiếp cận vào tài khoản nhà băng. Cuối cùng, việc chui vào mạng máy tính từ xa cũng là vấn đề nghiêm trọng do các ID và mật khẩu của ng−ời sử dụng đ−ợc truyền trên mạng ở dạng không mã. Nh− vậy, họ là những vùng dễ bị tổn th−ơng đối với những ng−ời điều khiển mạng máy tính. Mục đích của sơ đồ định danh là: ai đó “nghe” nh− Alice t− x−ng danh với Bob không thể tự bịa đặt mình là Alice. Ngoài ra, chúng ta sẽ cố gắng giảm xác suất để chính Bob có thể thử mạo nhận là Alice sau khi cô ta tự x−ng danh với anh ta. Nói cách khác, Alice muốn có khả năng chứng minh danh tính của mình bằng ph−ơng tiện điện tử mà không cần đ−a ra chút thông tin nào hết về danh tính của mình. Một vài sơ đồ định danh nh− vậy đã đ−ợc nêu ra. Một mục đích thực tế là tìm một sơ đồ đủ đơn giản để có thể thực hiện đ−ợc trên thẻ thông minh, đặc biệt là thẻ tín dụng gắn thêm một chíp có khả năng thực hiện các tính toán số học. Vì thế, thẻ đòi hỏi cả khối l−ợng tính toán lẫn bộ nhớ nhỏ đến mức có thể. Thẻ nh− vậy an toàn hơn các thẻ ATM hiện tại. Tuy nhiên, điều quan trọng cần chú ý là sự an toàn “đặc biệt” liên quan đến ng−ời điều khiển Trang 1
- Vietebooks Nguyễn Hoàng Cương đ−ờng dây thông tin. Vì nó là thẻ để chứng minh danh tính nên không cần bảo vệ chống mất thẻ. Song nó vẫn cần thiết có PIN để biết ai là chủ nhân thực sự của thẻ. Trong các phần sau sẽ mô tả một số sơ đồ định danh thông dụng nhất. Tuy nhiên, tr−ớc hết hãy xét một sơ đồ rất đơn giản dựa trên hệ thống mã khoá riêng bất kì, chẳng hạn nh− DES. Giao thức mô tả trên hình 9.1 đ−ợc gọi là giao thức “yêu cầu và trả lời”, trong đó giả thiết rằng, Alice đang tự x−ng danh với Bob cô và Bob chia nhau một khoá mật chung K, khoá này chỉ là hàm mã eK. Hình 9.1: Giao thức Yêu cầu và đáp ứng: 1. Bob chọn một yêu cầu x- là một chuỗi ngẫu nhiên 64 bit. Bob gửi x cho Alice 2. Alice tính y = eK(x) gửi nó cho Bob. 3. Bob tính: y’ = eK(x) và xác minh y’ = y. Ta sẽ minh hoạ giao thức này bằng ví dụ nhỏ d−ới dây. Ví dụ 9.1 Giả sử Alice và Bob dùng hàm mã làm luỹ thừa tính modulo: 102379 eK(x) = x mod 167653. Giả sử yêu cầu của Bob x = 77835. Khi đó Alice sẽ trả lời với y = 100369. Mọi sơ đồ định danh thực sự đều là các giao thức “Yêu cầu và đáp ứng” song các sơ đồ hiệu quả nhất lại không yêu cầu các khoá chia sẻ (dùng chung). ý t−ởng này sẽ đ−ợc tiếp tục trong phần còn lại của ch−ơng này. 9.2 Sơ đồ định danh Schnorr. Ta bắt đầu bằng việc mô tả sơ đồ định danh Schnorr - là một trong những sơ đồ định danh thực tiễn và đáng chú ý nhất. Sơ đồ này đòi hỏi một ng−ời đ−ợc uỷ quyền có tín nhiệm mà ta ký hiệu là TA. Ta sẽ chọn các tham số cho sơ đồ nh− sau: 1. p là số nguyên tố lớn (tức p ≥ 2512) sao cho bài toán logarithm rời rạc trong Zp là không giải đ−ợc. 2. q là −ớc nguyên tố lớn của p-1 (tức q ≥ 2140). * 3. α∈ Z p có bậc q (có thể tính α nh− (p-1) ?? ) đều đ−ợc công khai. TA sẽ đóng một dấu xác nhận cho Alice. Khi Alice muốn nhận đ−ợc một dấu xác thực từ TA, cô phải tiến hành các b−ớc nh− trên hình 9.2. Vào Trang 2
- Vietebooks Nguyễn Hoàng Cương thời điểm cuối, khi Alice muốn chứng minh danh tính của cô tr−ớc Bob, cô thực hiện giao thức nh− trên hình 9.3. Nh− đã nêu ở trên, t là một tham số mật. Mục đích của nó là ngăn kẻ mạo danh - chẳng hạn Olga - khỏi phỏng đoán yêu cầu r của Bob. Ví dụ, nếu Olga đoán đúng giá trị r, cô ta có thể chọn giá trị bất kỳ cho y và tính γ = αyvγ mod p Cô sẽ đ−a cho Bob γ nh− trong b−ớc 1 và sau đó khi nhận đ−ợc yêu cầu r, cô sẽ cung cấp giá trị y đã chọn sẵn. Khi đó γ sẽ đ−ợc Bob xác minh nh− trong b−ớc 6. Hình 9.2 Cấp dấu xác nhận cho Alice. 1. TA thiết lập danh tính của Alice bằng cách lập giấy chứng minh thông th−ờng chẳng hạn nh− xác nhận ngày sinh, hộ chiếu Sau đó TA thiết lập một chuỗi ID (Alice) chứa các thông tin định danh của cô ta. 2. Alice bí mật chọn một số mũ ngẫu nhiên a, 0 ≤ a ≤ q-1. Alice tính: v = α-a mod p và gửi v cho TA 3. TA tạo ra một chữ kí: s =sigTA(I,v). Dấu xác nhận C(Alice) = (ID(Alice),v,s) và đ−a cho Alice Xác suất để Olga phỏng đoán đúng r là 2-t nếu r đ−ợc Bob chọn ngẫu nhiên. Nh− vậy, t = 40 là giá trị hợp lý với hầu hết các ứng dụng, (tuy nhiên, chú ý rằng, Bob sẽ chọn r ngẫu nhiên mỗi lần Alice x−ng danh với anh ta. Nếu Bob luôn dùng cùng một r thì Olga có thể mạo danh Alice bằng ph−ơng pháp mô tả ở trên). Có hai vấn đề nảy sinh trong giao thức xác minh. Tr−ớc hết, chữ kí s chứng minh tính hợp lệ của dấu xác nhân của Alice. Nh− vậy, Bob xác minh chữ ký của TA trên dấu xác nhận của Alice để thuyết phục chính bản thân mình rằng dấu xác nhận là xác thực. Đây là xác nhận t−ơng tự nh− cách đã dùng ở ch−ơng 8. Vấn đề thứ hai của giao thức liên quan đến mã số mật a. Giá trị a có chức năng t−ơng tự nh− PIN để thuyết phục Bob rằng, ng−ời thực hiện giao thức định danh quả thực là Alice. Tuy nhiên có một khác nhau quan trọng so với PIN là: trong giao thức định danh, a không bị lộ. Thay vào đó, Alice (hay chính xác hơn là thẻ thông minh của cô) chứng minh rằng, cô (thẻ) biết giá trị a trong b−ớc 5 bằng cách tính y trong khi trả lời đòi hỏi r do Bob đ−a ra. Vì a không bị lộ nên kĩ thuật này gọi là chứng minh không tiết lộ thông tin. Hình 9.3. sơ đồ định danh Schnorr 1. Alice chọn một số ngẫu nhiên k, 0 ≤ k ≤ q-1 và tính: γ = αk mod p. Trang 3
- Vietebooks Nguyễn Hoàng Cương 2. Alice gửi dấu xác nhận của mình cho C(Alice) = (ID(Alice),v,s) và γ cho Bob. 3. Bob xác minh chữ kí của TA bằng cách kiểm tra xem có thoả mãn ver(ID(Alice),v,s) = true hay không. 4. Bob chọn một số ngẫu nhiên r, 1≤ r ≤ 2t và đ−a nó cho Alice. 5. Alice tính: y = k + ar mod q và đ−a y cho Bob. 6. Bob xác minh xem có thoả mãn đồng d− thức sau không γ ≡ αyvr (mod p). Các đồng d− sau đây chứng minh rằng Alice có khả năng chứng minh danh tính của cô cho Bob: αyvr ≡ αk+arvr (mod p) ≡ αk+arvar (mod p) ≡ αk(mod p) ≡ γ (mod p) Nh− vậy sẽ chấp nhận bằng chứng về danh tính của Alice và giao thức đ−ợc gọi là có tính đầy đủ. D−ới đây là một ví dụ nhỏ minh hoạ khía cạnh “thách thức và đáp ứng” của giao thức. Ví dụ 9.2 * Giả sử p=88667, q = 1031, t=10. Phần tử α = 70322 có bậc q thuộc Z p . Giả sử số mã mật của Alice a = 755. Khi đó: v = α-a( mod p) = 703221031-755mod 88667 = 13136 Giả sử Alice chọn k = 543, sau đó cô tính: γ = αk mod p = 70322543 mod 88667 = 84109 và gửi γ cho Bob. Giả thiết Bob đ−a ra yêu cầu r = 1000. Khi đó Alice tính: y = k + ar mod q = 543 + 755ì 1000 mod 1031 = 851 và gửi y cho Bob. Sau đó Bob xác minh xem 84109 ≡ 70322851131361000(mod 88667) Nếu đúng, Bob sẽ tin rằng anh ta đang liên lạc với Alice. Tiếp theo ta hãy xem xét cách ai đó có thể mạo danh Alice. Olga - kẻ đang cố mạo danh Alice bằng cách làm giả dấu xác nhận: C’(Alice) = (ID(Alice), v’, s’), Trang 4
- Vietebooks Nguyễn Hoàng Cương trong đó v’≠v. Song s’ đ−ợc giả thiết là chữ kí của (ID(Alice), v’, s’) và nó đ−ợc Bob xác minh trong b−ớc 3 của giao thức. Nếu sơ đồ chữ kí của TA là an toàn, Olga sẽ không thể làm giả chữ kí s’ (mà sau này sẽ bị Bob xác minh). Biện pháp khác sẽ cho Olga dùng dấu xác nhận đúng của Alice C(Alice) = (ID(Alice), v, s) (nhớ lại rằng, các dấu xác nhận không mật và thông tin trên dấu xác nhận bị lộ mỗi lần thực hiện giao thức định danh). Tuy nhiên Olga sẽ không thể mạo danh Alice trừ phi cô ta cũng biết giá trị a. Đó là vì “yêu cầu” r trong b−ớc 4. ở b−ớc 5, Olga sẽ phải tính y mà y là hàm của a. Việc tính a từ v bao hàm việc giải bài toán logarithm rời rạc là bài toán mà ta đã giả thiết là không thể giải đ−ợc. Có thể chứng minh một định lí chính xác hơn về tính an toàn của giao thức nh− sau: Định lí 9.1. Giả sử Olga biết giá trị γ nhờ đó cô có xác suất ε ≥ 1/2t-1 để giả mạo Alice thành công trong giao thức xác minh. Khi đó Olga có thể tính a trong thời gian đa thức. Chứng minh Với một phần ε trên 2t yêu cầu r, Olga có thể tính giá trị y (sẽ đ−ợc Bob chấp nhận trong b−ớc 6). Vì ε ≥ 1/2t-1 nên ta có 2t/ε ≥ 2 và bởi vậy, Olga có thể tính đ−ợc các giá trị y1,y2,r1 và r2 sao cho y1 ≡ y2 và γ ≡ α y1 v ẻ1 ≡α y2 v ẻ2 (mod p) hay α y− − y2 ≡ v r1 −r2 (mod p) Vì v = α-a nên ta có: y1-y2 ≡ a(r1- r2) (mod q) t t Xét thấy 0 2 là nguyên tố. Vì UCLN(r1- r2, q) = 1 và Olga có thể tính: -1 a = (y1-y2)(r1 - r2) mod q nh− mong muốn Định lý trên chứng minh rằng, bất kỳ ai có cơ hội (không phải không đáng kể) thực hiện thành công giao thức định danh đều phải biết (hoặc có thể tính trong thời gian đa thức) số mũ mật a của Alice. Tính chất này th−ờng đ−ợc gọi là tính đúng đắn (sound). D−ới đây là ví dụ minh hoạ: Trang 5
- Vietebooks Nguyễn Hoàng Cương Ví dụ 9.3 Giả sử ta cũng có các tham số nh− trong ví dụ 9.2: p = 88667, q = 1031, t= 10, α = 70322, a = 755 và v = 13136. Giả sử Olga nghiên cứu thấy rằng: α851v1000 ≡ α454v19(mod p). khi đó có thể tính: a =(851 - 454)(1000 - 19)-1 mod 1031 = 755 và nh− vậy sẽ khám phá ra số mũ mật của Alice. Chúng ta đã chứng minh rằng, giao thức có tính đúng đắn và đầy đủ. Song tính đúng đắn và đầy đủ ch−a đủ để bảo đảm rằng giao thức là an toàn. Chẳng hạn, nếu Alice để lộ số mũ mật a của mình khi chứng minh danh tính của cô với Olga thì giao thức vẫn còn đúng đắn và đầy đủ. Tuy nhiên nó sẽ hoàn toàn không an toàn vì sau đó Olga có thể mạo danh Alice. Điều này thúc đẩy động cơ xem xét thông tin mật đã cho ng−ời xác minh - ng−ời cũng tham gia trong giao thức - biết (trong giao thức này, thông mật là a). Hy vọng là không có thông tin nào về a có thể bị gia tăng bởi Olga khi Alice chứng minh danh tính của mình cho cô ta, để sau đó Olga có thể giả dạng nh− Alice. Nói chung, có thể hình dung tình huống khi Alice chứng minh danh tính của mình với Olga trong một số tình huống khác nhau. Có lẽ Olga không chọn các yêu cầu của cô (tức các giá trị r) theo kiểu ngẫu nhiên. Sau vài lần thực hiện giao thức, Olga sẽ cố gắng xác định giá trị a để sau đó có thể mạo danh Alice. Nếu Olga không thể xác định đ−ợc chút thông tin nào về a qua tham gia với số lần đa thức thực hiện giao thức và sau đó thực hiện một l−ợng tính toán đa thức thì giao thức có thể đ−ợc gọi là an toàn. Hiện tại vẫn ch−a chứng minh đ−ợc rằng giao th−c Schnorr là an toàn, song trong phần tiếp sau, ta sẽ đ−a ra một cải tiến về sơ đồ này (do Okmoto đ−a ra) mà có thể chứng minh đ−ợc nó là an toàn khi cho tr−ớc giả thuyết tính toán nào đó. Sơ đồ Schnorr đã đ−ợc thiết kế với tốc độ nhanh và hiệu quả theo quan điểm cả về tính toán lẫn l−ợng thông tin cần thiết để trao đổi trong giao thức. Nó cũng đ−ợc thiết kế nhằm tối thiểu hoá l−ợng tính toán mà Alice phải thực hiện. Đây là những đặc tính tốt vì trong thực tế, các tính toán của Alice sẽ phải tính trên các thẻ thông minh có khả năng tính toán thấp trong khi các tính toán của Bob lại trên các máy lớn. Vì mục đích thảo luận, ta hãy giả sử rằng, ID(Alice) là chuỗi 512 bit, v cũng gồm 512 bit, còn s bằng 320 bit nến DSS đ−ợc dùng nh− sơ đồ chữ kí. Kích th−ớc tổng cộng của dấu xác nhận C(Alice) (cần đ−ợc l−u trên thẻ của Alice) là 1444 bit. Xét các tính toán của Alice: B−ớc 1 cần lấy mũ theo modulo, b−ớc 5 so sánh một phép công modulo và một phép nhân modulo. Đó là phép luỹ Trang 6
- Vietebooks Nguyễn Hoàng Cương thừa modulo mạnh về tính toán song có thể tính toán gián tiếp nếu muốn. Còn các tính toán trực tiếp đ−ợc Alice thực hiện bình th−ờng. Việc tính số bit cần thiết trong quá trình liên lạc để thực hiện giao thức cũng khá đơn giản. Có thể mô tả thông tin đ−ợc liên lạc ở dạng đồ hình nh− sau C,γ Alice r Bob y Alice đ−a cho Bob 1444 + 512 = 1956 bit thông tin trong b−ớc 2: Bob đ−a cho Alice 40 bit trong b−ớc 4 và Alice đ−a cho Bob 160 bit trong b−ớc 6. Nh− vậy các yêu cầu về liên lạc rất mức độ. 9.3 Sơ đồ định danh của Okamoto. Trong phần này ta sẽ đ−a ra một biến thể của sơ đồ Schnorr do Okamoto đ−a ra. Sơ đồ cải tiến này Zp không giải đ−ợc. Để thiết lập sơ đồ, TA chọn p và q nh− trong sơ đồ Schnorr. TA cũng * chọn hai phần tử α1 và α 2 ∈ Zp đều có bậc q. Giá trị c = logα1α2 đ−ợc giữ bí mật kể cả đối với Alice. Ta sẽ giả thiết rằng, không ai có thể giải đ−ợc (thậm chí Alice và Olga liên minh với nhau) để tính ra giá trị c. Nh− tr−ớc đây, TA chọn sơ đồ chữ kí số và hàm hash. Dấu xác nhận mà TA đã phát cho Alice đ−ợc xây dựng nh− mô tả ở hình 9.4. D−ới đây là một ví dụ về sơ đồ Okamoto. Ví dụ 9.4. Cũng nh− ví dụ tr−ớc, ta lấy p = 88667, q = 1031, t = 10. Cho α1 = * 58902 và cho α2 = 73611 (cả α1 lẫn α 2 đều có bậc q trong Zp ). Giả sử a1=846, a2 = 515, khi đó v = 13078. Giả sử Alice chọn k1 = 899, k2 = 16, khi đó γ = 14573. Nếu Bob đ−a ra yêu cầu r = 489 thì Alice sẽ trả lời y1 = 131 và y2 = 287. Bob sẽ xác minh thấy: 58902131786112871378489 ≡ 14574 (mod 88667). Vì thế Bob chấp nhận bằng chứng của Alice về danh tính của cô. Việc chứng minh giao thức là đầy đủ không khó (tức là Bob sẽ chấp nhận bằng chứng về danh tính của cô). Sự khác nhau giữa sơ đồ của Okamoto và Schnorr là ở chỗ, ta có thể chứng minh rằng sơ đồ Okamota an toàn miễn là bài toán logarithm rời rác không giải đ−ợc. Hình 9.4: Đóng dấu xác nhận cho Alice. 1. TA thiết lập danh tính của Alice và phát chuỗi định danh ID(Alice). 2. Alice chọn bí mật hai số mũ ngẫu nhiên a1,a2 trong đó 0 ≤ a1,a2 ≤ q -1 Alice tính: Trang 7
- Vietebooks Nguyễn Hoàng Cương −a1 −a2 v = α1 α1 mod p và đ−a cho TA. 3. TA tạo chữ kí s = sigTA(I,v). và đ−a dấu xác nhận C(Alice) = (ID(Alice),v,s) cho Alice Phép chứng minh về tính an toàn rất tinh tế. Đây là ý kiến chung: Nh− tr−ớc đây, Alice tự định danh với Olga trong nhiều thời gian đa thức thông qua thực hiện giao thức. Khi đó ta giả thiết rằng Olga có khả năng nghiên cứu một số thông tin về các giá trị a1,a2. Nếu nh− vậy thì Olga và Alice kết hợp với nhau có khả năng tính đ−ợc logarithm rời rạc c trong thời gian đa thức. Điều này mâu thuẫn với giả định ở trên và chứng tỏ rằng Olga chắc không thể nhận đ−ợc chút thông tin nào về các số mũ của Alice thông qua việc tham gia vào giao thức. Phần đầu tiên của giao thức này t−ơng tự với chứng minh tính đầy đủ trong sơ đồ Schnorr. Định lý 9.2. Giả sử Olga biết a giá trị γ mà nhờ nó cô có xác suất thành công ε ≥ 1/2t-1khi đánh giá Alice trong giao thức xác minh. Khi đó, Olga có thể tính các giá trị b1,b2 trong thời gian đa thức sao cho −b1 −b2 v ≡ α1 α1 mod p . Chứng minh: t Với phần ε trên 2 yêu cầu có thể r, Olga có thể tính các giá trị y1, y2, z1, z2, r và s với r ≠ s và: y1 y2 r z1 Ζ2 8 γ ≡ α1 α 2 v ≡ α1 α 2 v (mod p). -t Ta định nghĩa: b1= (y1 - z1)(r - s) mod q -t và b1= (y2 - z2)(r - s) mod q Khi đó dễ dàng kiểm tra thấy rằng: −b1 −b2 v ≡ α1 α 2 (mod p) nh− mong muốn. Trang 8
- Vietebooks Nguyễn Hoàng Cương Hình 9.5. Sơ đồ định danh Okamoto. 1. Alice chọn các số ngẫu nhiên k1, k2, 0 ≤ k1, k2 ≤ q -1 và tính: k1 k2 γ =α1 α 2 (mod p). 2. Alice gửi dấu xác nhận của cô C(Alice) = (ID(Alice),v,s) và γ cho Bob. 3. Bob xác minh chữ kí của TA bằng cách kiểm tra xem có thoả mãn đồng nhất thức: verTA(ID(Alice),v,s) = true 4. Bob chọn số ngẫu nhiên r, 1≤ r ≤ 2t và đ−a nó cho Alice. 5. Alice tính: y1 = k1 + a1r mod q và y2 = k2 + a2r mod q và đ−a y1,y2 cho Bob. 6. Bob xác minh xem: y1 y2 r γ ≡ α1 α 2 v (mod p) hay không. Bây giờ ta tiếp tục chỉ ra cách Alice và Olga cùng tính giá trị c. Định lý 9.3. Giả sử Olga biết giá trị γ (mà với nó cô có xác suất giả danh Alice thành công là ε ≥ 1/2t-1) trong giao thức xác minh. Khi đó, Alice và Olga có thể cùng nhau tính log α trong thời gian đa thức với xác suất 1-1/q. α1 2 Chứng minh Theo định lý 9.2, Olga có khả năng xác định các giá trị b1 và b2 sao cho b1 b2 v ≡ α1 α 2 (mod p) Giả thiết rằng Alice để lộ các giá trị a1 và a2 cho Olga biết. Dĩ nhiên: a1 a2 v ≡ α1 α 2 (mod p) a1 −b1 b2 −a2 vì thế α1 ≡ α 2 (mod p) giả sử rằng (a1,a2) ≠ (b1,b2), khi đó (a1-b1)-1 tồn tại và logarithm rời rạc: c = log α = (a -b )(b -a )-1 mod q α1 2 1 1 2 2 có thể tính đ−ợc trong thời gian đa thức. Phần còn lại là xem xét xác suất để (a1,a2) = (b1,b2). Nếu xảy ra điều này thì giá trị c không thể tính theo mô tả ở trên. Tuy nhiên, ta sẽ chỉ ra rằng (a1,a2) = (b1,b2) sẽ chỉ xảy ra với xác suất rất bé 1/q, vì thế giao thức nhờ đó Alice và Olga tính đ−ợc c sẽ hầu nh− chắc chắn thành công. Định nghĩa: ' ' ' ' ' ' −a1 −a2 −a1 −a2 A ={(a1,a2 ) ∈ Ζ p ì Ζq :α1 α2 ≡ α1 α2 (mod p) } Nghĩa là A gồm tất cả các cặp đ−ợc sắp có thể và chúng có thể là các số mũ mật của Alice. Xét thấy rằng: A ={a1- cθ, a2 + θ : θ∈ZP}, Trang 9
- Vietebooks Nguyễn Hoàng Cương Trong đó c = log α . Nh− vậy A chứa q cặp đ−ợc sắp. α1 2 Cặp đ−ợc sắp (b1,b2) do Olga tính chắc chắn ở trong tập A. Ta sẽ chỉ ra rằng, giá trị của cặp (b1,b2) độc lập với cặp (a1,a2) chứa các số mũ mật của Alice. Vì (a1,a2) đ−ợc Alice chọn đầu tiên một cách ngẫu nhiên nên xác suất để (a1,a2) = (b1,b2) là 1/q. Nh− vậy, (b1,b2) là “độc lập” với (a1,a2). Cặp (a1,a2) của Alice là một trong q cặp đ−ợc sắp có thể trong A và không có thông tin nào về nó (là cặp “đúng”) đã bị Alice để lộ cho Olga biết khi cô x−ng danh với Olga. (Một cách hình thức, Olga biết một cặp trong A chứa số mũ của Alice song cô ta không biết nó là cặp nào). Ta hãy xét thông tin đ−ợc trao đổi trong giao thức định danh. Về cơ bản, trong mỗi lần thực hiện giao thức, Alice chọn γ, Olga chọn r và Alice để lộ y1 và y2 sao cho: y1 y2 r γ =α1 α1 v (mod p). Ta nhớ lại rằng, Alice tính: y1 = k1 + a1r mod q và y2 = k2 + a2r mod q trong đó k1 k2 γ =α1 α1 mod q Chú ý rằng k1 và k2 không bị lộ (mà a1 và a2 cũng không). Bốn phần tử cụ thể (γ,r,y1,y2) đ−ợc tạo ra trong thực hiện giao thức tuỳ thuộc vào cặp (a1,a2) của Alice vì y1 và y2 đ−ợc định nghĩa theo a1 và a2. Tuy nhiên ta sẽ chỉ ra rằng, mỗi bộ bốn nh− vậy có thể đ−ợc tạo ra nh− nhau từ cặp ’ ’ ’ ’ đ−ợc sắp bất kì khác (a 1, a 2) ∈A. Để thấy rõ, giả thiết (a 1, a 2) ∈A, tức là ’ ’ a 1=a1 - cθ và a 2 = a2 + θ, trong đó 0 ≤ θ ≤ q -1. Có thể biểu diễn y1 và y2 nh− sau: y1 = k1 + a1r ’ = k1 + (a1 + cθ)r ’ = (k1 + rcθ)+a1 r và y2 = k2 + a2r ’ = k2 + (a2 - θ)r ’ = (k2 - rθ)+a2 r Trong đó tất cả các phép tính số học đều thực hiện trong Zp. Nghĩa là bộ bốn ' ' (γ,r,y1,y2) cũng phù hợp với cặp đ−ợc sắp (a1 ,a2 ) bằng việc dùng các phép ' ' chọn ngẫu nhiên k1 = k1 + rcθ và k2 = rθ để tạo ra γ. Cần chú ý rằng, các giá trị k1 và k2 không bị Alice làm lộ nên bộ (γ, r, y1, y2) không cho biết thông tin gì về cặp nào trong A đ−ợc Alice dùng làm số mũ mật của cô. Đây là điều phải chứng minh. Trang 10
- Vietebooks Nguyễn Hoàng Cương Việc chứng minh tính an toàn này khá tinh vi và tối −u. Chắc nó sẽ hữu dụng để lắp mới các đặc điểm của giao thức, dẫn tới bằng chứng về sự an toàn. Nh− vậy, Alice chọn 2 số mũ mật cao hơn là chọn một. Có tổng cộng q cặp trong A t−ơng đ−ơng với cặp (a1,a2) của Alice. Điều này dẫn đến mâu thuẫn cơ bản là, việc hiều biết hai cặp khác nhau trong A sẽ cho một ph−ơng pháp hiệu quả tính toán logarithm rời rạc c. Alice dĩ nhiên chỉ biết một cặp trong A; nếu ta chứng minh rằng Olga có thể giả danh Alice thì Olga có thể tính một cặp trong A khác với cặp của Alice (với xác suất cao). Nh− vậy Alice và Olga có thể cùng nhau tìm hai cặp trong A và tính c - cho mâu thuẫn nh− mong muốn. D−ới đây là một ví dụ nhỏ minh hoạ việc Alice và Olga tính toán log α : α1 2 Ví dụ 9.5. Giống nh− trong ví dụ 9.4, ta lấy p =88667, q = 1031, t = 10 và giả sử v = 13078. Giả thiết Olga đã xác định đ−ợc rằng: 131 287 489 890 303 199 α1 α2 v ≡ α1 α2 v (mod p) Khi đó cô tính: -1 b1 = (131 - 890)(489 - 199) mod 1031 = 456 và -1 b2 = (287 - 303)(489 - 199) mod 1031 = 519 Dùng các giá trị a1 và a2 do Alice đ−a cho, giá trị c tính nh− sau: c = (846 - 456)(519 - 515)-1 mod 1031 = 613 giá trị thực tế này là log α mà có thể xác minh bằng cách tính: α1 2 58902613 mod 88667 = 73611. Cuối cùng, cần nhấn mạnh rằng, mặc dù không có chứng minh đã biết nào chứng tỏ sơ đồ Schnorr an toàn (thậm chí giả thiết rằng, bài toán logarithm rời rạc không giải đ−ợc) song ta cũng không biết bất kì nh−ợc điểm nào của sơ đồ này. Thực sự sơ đồ Schnorr đ−ợc −a thích hơn sơ đồ Okamoto do nó nhanh hơn. 9.4 Sơ đồ định danh Guillou - quisquater. Trong phần này sẽ mô tả một sơ đồ định danh khác do Guillou và Quisquater đ−a ra dựa trên RSA. Việc thiết lập sơ đồ nh− sau: TA chọn 2 số nguyên tố p và q và lập tích n =pq. Giá trị của p và q đ−ợc giữ bí mật trong khi n công khai. Giống nh− tr−ớc đây, p và q nên chọn đủ lớn để việc phân tích n không thể thực hiện đ−ợc. Cũng nh− vậy, TA chọn số nguyên tố đủ lớn b giữ chức năng tham số mật nh− số mũ mật trong RSA. Giả thiết b là số nguyên tố dài 40 bít. Cuối cùng TA chọn sơ đồ chữ kí và hàm hash. Hình 9.6: Phát dấu xác nhận cho Alice 1. TA thiết lập định danh cho Alice và phát chuỗi định danh ID(Alice). Trang 11
- Vietebooks Nguyễn Hoàng Cương 2. Alice chọn bí mật một số nguyên u, trong đó 0 ≤ u ≤ n -1. Alice tính: v = (u-1)b mod n và đ−a u cho TA 3. TA tạo ra chữ kí: s = sigTA(I,v) Dấu xác nhận: C(Alice) = (ID(Alice), v, s) và đ−a cho Alice Dấu xác nhận do TA phát cho Alice đ−ợc xây dựng nh− mô tả trong hình 9.6. Khi Alice muốn chứng minh danh tính của cô cho Bob, cô thực hiện giao thức hình 9.7. Ta sẽ chứng minh rằng, sơ đồ Guillou - Quisquater là đúng đắn và đầy đủ. Tuy nhiên, sơ đồ không đ−ợc chứng minh là an toàn (mặc dù giả thiết hệ thống mã RSA là an toàn). Ví dụ 9.6: Giả sử TA chọn p = 467, q = 479, vì thế n = 223693. Giả sử b = 503 và số nguyên mật của Alice u = 101576. Khi đó cô tính: v = (u-1)b mod n = (101576-1)503 mod 223693 = 24412. Hình 9.7: Sơ đồ định danh Guillou - Quisquater. 1. Alice chọn số ngẫu nhiên k, trong đó 0 ≤ k ≤ n -1 và tính: γ = kb mod n 2. Alice đ−a cho Bob dấu xác nhận của cô C(Alice) = (ID(Alice), v, s) và γ. 3. Bob xác minh chữ kí của TA bằng cách kiểm tra xem có thoả mãn hay không đồng d− thức: ver(ID(Alice), v, s) = true. 4. Bob chọn số ngẫu nhiên r, 0 ≤ r ≤ b -1 và đ−a nó cho Alice. 5. Alice tính: y = k u’ mod n và đ−a y cho Bob 6. Bob xác minh rằng γ ≡ vryb (mod n) Giả sử Bob trả lời bằng yêu cầu r = 375. Khi đó Alice sẽ tính y = ku’ mod n = 187485 ì 101576375 mod 223693 = 93725 và đ−a nó cho Bob. Bob xác minh thấy: 24412 ≡ 8988837593725503(mod 223693) vì thế Bob chấp nhận bằng chứng về danh tính của Alice. Trang 12
- Vietebooks Nguyễn Hoàng Cương Giống nh− tr−ờng hợp tổng quát, việc chứng minh tính đầy đủ rất đơn giản: vryb ≡ (u-b)r(kur)b(mod n) ≡ u-brkbubr (mod n) ≡ kb (mod n) ≡ γ (mod n) Bây giờ ta xét đến tính đúng đắn. Ta sẽ chứng minh sơ đồ là đúng đắn miễn là không dễ dàng tính đ−ợc u từ v. Vì v đ−ợc lập từ u bằng phép mã RSA nên đây là giả thiết có vẻ hợp lý. Định lí 9.4 Giảsử Olga biết giá trị γ nhờ nó cô có xác suất thành công trong việc giả danh Alice là ε > 1/b trong giao thức xác minh. Khi đó Olga có thể tính u trong thời gian đa thức. Chứng minh Với γ nào đó, Olga có thể tính giá trị y1, y2, r1, r2 với r1 ≠ r2 sao cho: r1 b r2 b γ ≡ v y ≡ v y2 (modn) không mất tính tổng quát, giả sử rằng r1 > r2. Khi đó ta có: r1 −r2 b v ≡ (y2 / y1) (modn) -1 vì 0 < r1- r2 <b và b là số nguyên tố nên t = (r1 - r2) mod b tồn tại và Olga có thể tính nó trong thời gian đa thức bằng thuật toán Euclidean. Vì thế ta có: (r1 −r2 )t bt v ≡ (y2 / y1) (modn). xét thấy, (r1- r2)t = lb +1 với số nguyên d−ơng l nào đó, vì thế: lb +1 bt v ≡ (y2/y1) (mod n) hay t−ơng đ−ơng, bt -1 lb v ≡ (y2/y1) (v ) (mod n). Nâng cả hai vế lên luỹ thừa b-1 mod φ(n) ta có: -1 t -1 l u≡ (y2/y1) (v ) (mod n). cuối cùng tính modulo đảo của cả hai vế của đồng d− thức này, ta nhận đ−ợc công thức sau cho u: t l u = (y2/y1) v mod n Olga có thể dùng công thức này để tính u trong thời gian đa thức. Ví dụ 9.7 Giống nh− ví dụ tr−ớc, giả sử rằng n = 223963, b = 503, u = 101576 và v = 89888. Giả thiết Olga nghiên cứu thấy rằng: v401103386b ≡ v37593725b (mod n) Tr−ớc tiên cô tính: -1 t = (r1- r2) mod b = (401 - 375)-1mod 503 = 445 Trang 13
- Vietebooks Nguyễn Hoàng Cương Tiếp theo cô tính: l = ((r1- r2)t - 1)/b = ((401 - 375)445 -1)/503 = 23 Cuối cùng cô có thể nhận đ−ợc giá trị u mật nh− sau: t l u = (y1/y2) v mod n = (103386/93725)4458988823 mod 233693 = 101576 và nh− vậy, số mũ mật của Alice đã bị lộ. 9.4.1Sơ đồ định danh dựa trên tính đồng nhất. Sơ đồ định danh Guillou - Quisquater có thể chuyển thành sơ đồ định danh dựa trên tính đồng nhất. Điều này có nghĩa là không cần các dấu xác nhận. Thay vào đó, TA tính giá trị của u nh− một hàm của chuỗi ID của Alice bằng cách dùng một hàm hash công khai h trong phạm vi Zn nh− chỉ ra trên hình 9.8. Giao thức định danh lúc này làm việc nh− mô tả trong hình 9.9. Giá trị v đ−ợc tính từ chuỗi ID của Alice thông qua hàm hash công khai. Để tiến hành giao thức định danh, Alice cần biết giá trị u, giá trị này chỉ TA là có thể tính đ−ợc (giả thiết hệ thống mã khoá công khai RSA là an toàn). Nếu Olga cố tự x−ng mình là Alice cô sẽ không thành công nếu không biết u. Hình 9.8: Phát giá trị u cho Alice 1. Thiết lập danh tính của Alice và phát chuỗi định danh ID(Alice): 2. TA tính u = (h(ID(Alice)-1)a mod n và đ−a u cho Alice Hình 9.9: Sơ đồ định danh dựa trên tính đồng nhất Guillou - Quisquater. 1. Alice chọn một số ngẫu nhiên k, 0 ≤ k ≤ n -1 và tính: γ = kb mod n 2. Alice đ−a ID(Alice) và γ cho Bob 3. Bob tính: v = h(ID(Alice)) 4. Bob chọn số ngẫu nhiên r, 0 ≤ r ≤ b-1 và đ−a nó cho Alice. 5. Alice tính: y = kur mod n và đ−a y cho Bob 6. Bob xác minh xem có thoả mãn hay không điều kiện d−ới đây: γ = vryb(mod n) 9.5 Chuyến sơ đồ định danh thành sơ đồ chữ kí. Có một ph−ơng pháp chuẩn để chuyển sơ đồ định danh thành sơ đồ chữ kí. ý t−ởng cơ bản là thay thế ng−ời xác minh (Bob) bằng hàm hash công khai h. Trong sơ đồ chữ kí thực hiện theo ph−ơng pháp này, thông báo không Trang 14
- Vietebooks Nguyễn Hoàng Cương bị chặt ra (băm) tr−ớc khi đ−ợc kí: Quá trình băm đ−ợc tích hợp thành thuật toán kí. Sau đây sẽ minh hoạ biện pháp này bằng việc chuyển sơ đồ Schnorr thành sơ đồ chữ kí (hình 9.10). Thực tế, có khả năng đ−a hàm hash h vào SHS và làm giảm đ−ợc modulo q. Do SHS tạo ra xâu bit có độ dài 160 và q là số nguyên tố 160 bit, nên việc giảm đ−ợc modulo q chỉ cần thiết khi bản tóm l−ợc của thông báo do SHS tạo ra v−ợt quá q. Thậm chí trong tr−ờng hợp này, chỉ cần trừ q khỏi kết quả. Trong quá trình chuyển từ sơ đồ định danh thành sơ đồ chữ kí, ta đã thay yêu cầu 40 bit bằng bản tóm l−ợc thông báo 160 bit, 40 bit là đủ đối với một yêu cầu (challenge) vì kẻ mạo danh cần có khả năng phỏng đoán yêu cầu để tính tr−ớc câu trả lời (mà sẽ đ−ợc chấp nhận). Song trong phạm vi của sơ đồ chữ kí, ta cần cac bản tóm l−ợc thông báo có kích th−ớc lớn hơn nhiều để ngăn chặc sự tấn công thông qua việc tìm kiếm các va chạm trong hàm hash. Hình 9.10: Sơ đồ chữ kí Schnorr. Cho p là số nguyên tố 512 bít sao cho bài toán logarithm rời rạc trong ZP là không giải đ−ợc; cho q là số nguyên tố 160 bít chia hết cho p-1. Giả sử * * α∈ Ζ p là căn bậc q của 1modulo p. Cho h là hàm hash trong phạm vi Ζ p . * * Định nghĩa P= Ζ p .A = Ζ p ì ZP và định nghĩa: K = {(p, q, α, a, v) : v ≡ α-a(mod p)} Các giá trị p, q, α và v là công khai còn a mật. * Với K = (p, q, α, a, v) và với số ngẫu nhiên k mật ∈ Ζ p , ta định nghĩa: sigK(x,k) = (γ,y) trong đó γ = αk mod p và y = k + ah(x,γ) mod q. * với x,γ ∈ Ζ p và y∈ZP, định nghĩa ver(x, γ, y) = true ⇔ γ ≡ αyvh(x,y)(mod p) 9.6 Các chú giải và tài liệu tham khảo Sơ đồ định danh Schnorr nêu trong tài liệu [Sc91], sơ đồ Okamoto đ−ợc đ−a ra trong [OK93] còn sơ đồ Guillou - quisquater có thể tìm thấy trong [GQ88]. Một sơ đồ khác chứng minh sự an toàn d−ới giả thiết tính toán hợp lý là của Brickell và McCurley [BM92]. Trang 15
- Vietebooks Nguyễn Hoàng Cương Các sơ đồ định danh phổ biến khác chứa đựng trong sơ đồ Fiege - Fiat - Shamir [FFS88] và sơ đồ nhân hoán vị [SH90]. Sơ đồ Fiege - Fiat - Shamir đ−ợc chứng minh là an toàn nhờ dùng kĩ thuật tri thức không. Ph−ơng pháp xây dựng sơ đồ chữ kí từ các sơ đồ định danh là do Fiat và Shamir đ−a ra [FS87]. Chúng cũng đ−ợc mô tả và phiên bản dựa trên tính đồng nhất của sơ đồ định danh của chính họ. Các tổng quan về các sơ đồ định danh này đã đ−ợc công bố trong công trình của Burmester, Desmedt và Beth [BDB92] và công trình của Waleffe và Quisquater [DWQ93]. Các bài tập 9.1. Xét sơ đồ định danh sau đây: Alice sở hữu khoá mật n = pq, p và q là những số nguyên tố và p ≡ q ≡ 3 (mod 4). Các giá trị n và ID(Alice) đều do TA kí nh− th−ờng lệ và l−u trên dấu xác nhận của Alice. Khi Alice muốn tự x−ng danh với Bob, Bob sẽ đ−a cho Alice một thặng d− bình ph−ơng theo modulo n gọi là x. Sau đó Alice sẽ tính căn bình ph−ơng y của x và đ−a nó cho Bob. Khi đó Bob xác minh xem y2 có ≡ x(mod n) hay không. Hãy giải thích tại sao sơ đồ này không an toàn. 9.2. Giả sử Alice đang dùng sơ đồ Schnorr với q = 1201, p =122503, t = 10 còn α= 11538. * a/ Hãy kiểm tra xem α có bậc q trên Ζ p không. b/ Giả thiết số mũ mật của Alice là α = 357, hãy tính v. c/ Giả sử k = 868, hãy tính γ. d/ Giả sử Bob đ−a ra yêu cầu r = 501, hãy tính câu trả lời y của Alice. e/ Thực hiện các tính toán của Bob khi xác minh y 9.3. Giả thiết, Alice dùng sơ đồ Schnorr với p, q, t nh− trong bài tập 9.2. v=51131 và giả sử Olga có thể nghiên cứu thấy rằng: α3v148 ≡ α151v1077 (mod p) Hãy chỉ ra cách Olga có thể tính số mũ mật a của Alice. 9.4. Giả sử Alice đang dùng sơ đồ Okamoto với q = 1201, p = 122503, t= 10, α1=60497 và α2 = 17163 a/ Giả sử các số mũ mật của Alice a1=432, a2 = 423, hãy tính v. b/ Giả sử k1 = 389, k2 = 191, tính γ c/ Giả thiết Bob đ−a ra yêu cầu r = 21. Hãy tính câu trả lời y1 và y2 của Alice d/ Thực hiện các tính toan của Bob để xác minh y1và y2. 9.5/ Cũng giả thiết rằng Alice dùng sơ đồ Okamoto với p, q, t, α1và α2 nh− trong bài tập 9.4, và v = 119504. a/ Hãy kiểm tra xem ph−ơng trình sau có thoả mãn không: 70 1033 877 248 883 992 α1 α 2 v = α `1 α 2 v (mod p) Trang 16
- Vietebooks Nguyễn Hoàng Cương b/ Dùng thông tin trên để tính b1 và b2 sao cho: −b1 −b2 α1 α 2 ≡ v(mod p) . c/ Giả sử rằng Alice để lộ α1=484 và α2 =935. Hãy chỉ ra cách Alice và Olga cùng nhau tính log α . α1 2 9.6. Giả sử rằng, Alice đang dùng sơ đồ Quisquater với p = 503, q = 379 và b= 509. a/ Giả sử giá trị u mật của Alice = 155863 tính v. b/ Giả sử k = 123845, hãy tính γ. c/ Giả thiết Bob đ−a ra yêu cầu r = 487. Hãy tính câu trả lời y của Alice d/ Thực hiện các tính toán của Bob để xác minh y 9.7. Giả sử Alice đang dùng sơ đồ Quisquater với n = 199543, b = 523 và v=146152. Giả thiết Olga đã khám phá ra rằng v456101360b = v25736056b(mod n) Hãy nêu cách Olga có thể tính u. Trang 17