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:
Vietebooks Nguyn Hong Cng Chơng Các sơ đồ định danh 9.1 Giíi thiƯu C¸c kü tht mËt m· cho phép nhiều toán dờng nh giải đợc thành giải đợc Một toán nh toán xây dựng sơ đồ định danh mật Trong nhiều trờng hợp cần thiết phải chứng minh phơng tiện điện tử danh tính Dới số trờng hợp điển hình: Để rút tiền từ máy thủ quỹ tự động (ATM), ta dùng thẻ với số định danh cá nhân (PIN) có chữ số Để trả tiền cho mua bán điện thoại dùng thẻ tín dụng, tất cần số thẻ tín dụng (và thời hạn dùng thẻ) Để trả tiền cho cú gọi điện thoại đờng dài (dùng thẻ gọi) cần số điện thoại PIN chữ số Để vào mạng máy tính, cần tên hợp lệ ngời sử dụng mật tơng ứng Thực tế, kiểu sơ đồ thờng không đợc thực theo cách an toàn Trong giao thức thực điện thoại, kẻ nghe trộm dùng thông tin định danh cho mục đích riêng Những ngời ngời nhận thông tin Các mu đồ xấu thẻ tín dụng hoạt động theo cách Thẻ ATM an toàn chút song ®iĨm u VÝ dơ, ®ã ®iỊu khiĨn ®−êng d©y liên lạc nhận đợc tất thông tin đợc mà hoá dải từ tính thẻ nh thông tin PIN Điều cho phép 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 vấn đề nghiêm trọng ID mật ngời sử dụng đợc truyền mạng dạng không mà Nh vậy, họ vùng dễ bị tổn thơng ngời điều khiển mạng máy tính Mục đích sơ đồ định danh là: nghe nh Alice t xng danh với Bob tự bịa đặt Alice Ngoài ra, cố gắng giảm xác suất để Bob thử mạo nhận Alice sau c« ta tù x−ng danh víi Nói cách khác, Alice muốn có khả chứng minh danh tính phơng tiện điện tử mà không cần đa chút thông tin hết danh tính Một vài sơ đồ định danh nh đà đợc nêu Một mục đích thực tế tìm sơ đồ đủ đơn giản để thực đợc thẻ thông minh, đặc biệt thẻ tín dụng gắn thêm chíp có khả thực tính toán số học Vì thế, thẻ đòi hỏi khối lợng tính toán lẫn nhớ nhỏ đến mức Thẻ nh an toàn thẻ ATM Tuy nhiên, điều quan trọng cần ý an toàn đặc biệt liên quan đến ngời điều khiển Trang Vietebooks Nguyn Hong Cng đờng dây thông tin Vì thẻ để chứng minh danh tính nên không cần bảo vệ chống thẻ Song cần thiết có PIN để biết chủ nhân thực thẻ Trong phần sau mô tả số sơ đồ định danh thông dụng Tuy nhiên, trớc hết hÃy xét sơ đồ đơn giản dựa hệ thống mà khoá riêng bất kì, chẳng hạn nh DES Giao thức mô tả hình 9.1 đợc gọi giao thức yêu cầu trả lời, giả thiết rằng, Alice tự xng danh với Bob cô Bob chia khoá mật chung K, khoá hàm mà eK Hình 9.1: Giao thức Yêu cầu đáp ứng: Bob chọn yêu cầu x- chuỗi ngẫu nhiên 64 bit Bob göi x cho Alice Alice tÝnh y = eK(x) göi nã cho Bob Bob tÝnh: y = eK(x) xác minh y = y Ta minh hoạ giao thức ví dụ nhỏ dới dây Ví dụ 9.1 Giả sử Alice Bob dïng hµm m· lµm luü thõa tÝnh modulo: eK(x) = x102379 mod 167653 Giả sử yêu cầu Bob x = 77835 Khi Alice trả lời với y = 100369 Mọi sơ đồ định danh thực giao thức Yêu cầu đáp ứng song sơ đồ hiệu lại không yêu cầu khoá chia sẻ (dùng chung) ý tởng đợc tiếp tục phần lại chơng 9.2 Sơ đồ định danh Schnorr Ta bắt đầu việc mô tả sơ đồ định danh Schnorr - sơ đồ định danh thực tiễn đáng ý Sơ đồ đòi hỏi ngời đợc uỷ quyền có tín nhiệm mà ta ký hiệu TA Ta chọn tham số cho sơ đồ nh sau: p số nguyên tố lớn (tức p 2512) cho toán logarithm rời rạc Zp không giải đợc q ớc nguyên tố lớn p-1 (tức q 2140) cã bËc q (cã thÓ tÝnh α nh− (p-1) Z *p ) đợc công khai ?? TA đóng dấu xác nhận cho Alice Khi Alice muốn nhận đợc dấu xác thực từ TA, cô phải tiến hành bớc nh hình 9.2 Vào Trang Vietebooks Nguyn Hong Cng thời điểm cuối, Alice mn chøng minh danh tÝnh cđa c« tr−íc Bob, cô thực giao thức nh hình 9.3 Nh đà nêu trên, t tham số mật Mục đích ngăn kẻ mạo danh - chẳng hạn Olga - khỏi đoán yêu cầu r Bob Ví dụ, Olga đoán giá trị r, cô ta chọn giá trị bất kú cho y vµ tÝnh γ = αyvγ mod p Cô đa cho Bob nh bớc sau nhận đợc yêu cầu r, cô cung cấp giá trị y đà chọn sẵn Khi đợc Bob xác minh nh bớc Hình 9.2 Cấp dấu xác nhận cho Alice 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 chuỗi ID (Alice) chứa thông tin định danh cđa c« ta Alice bÝ mËt chän mét sè mị ngÉu nhiªn a, ≤ a ≤ q-1 Alice tÝnh: v = α-a mod p vµ gưi v cho TA TA tạo chữ kí: s =sigTA(I,v) Dấu xác nhận C(Alice) = (ID(Alice),v,s) đa cho Alice Xác suất để Olga đoán r 2-t r đợc Bob chọn ngẫu nhiên Nh vậy, t = 40 giá trị hợp lý với hầu hết ứng dụng, (tuy nhiên, ý rằng, Bob chọn r ngẫu nhiên lần Alice xng danh với Nếu Bob dùng r Olga mạo danh Alice phơng pháp mô tả trên) Có hai vấn đề nảy sinh giao thức xác minh Trớc hết, chữ kí s chứng minh tính hợp lệ dấu xác nhân Alice Nh vậy, Bob xác minh chữ ký TA dấu xác nhận Alice để thuyết phục thân dấu xác nhận xác thực Đây xác nhận tơng tự nh cách đà dùng chơng Vấn đề thứ hai giao thức liên quan đến mà số mật a Giá trị a có chức tơng tự nh PIN để thuyết phục Bob rằng, ngời thực giao thức định danh thực Alice Tuy nhiên có khác quan trọng so với PIN là: giao thức định danh, a không bị lộ Thay vào đó, Alice (hay xác thẻ thông minh cô) chứng minh rằng, cô (thẻ) biết giá trị a bớc cách tính y trả lời đòi hỏi r Bob đa Vì a không bị lộ nên kĩ thuật gọi chứng minh không tiết lộ thông tin Hình 9.3 sơ đồ định danh Schnorr Alice chän mét sè ngÉu nhiªn k, ≤ k ≤ q-1 vµ tÝnh: γ = αk mod p Trang Vietebooks Nguyễn Hồng Cương Alice gưi dÊu x¸c nhận cho C(Alice) = (ID(Alice),v,s) cho Bob Bob xác minh chữ kí TA cách kiểm tra xem có thoả mÃn ver(ID(Alice),v,s) = true hay không Bob chọn số ngẫu nhiên r, r 2t đa cho Alice Alice tÝnh: y = k + ar mod q vµ ®−a y cho Bob Bob x¸c minh xem cã thoả mÃn đồng d thức sau không yvr (mod p) Các đồng d sau chứng minh Alice có khả chứng minh danh tính 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 giao thức đợc gọi có tính đầy đủ Dới ví dụ nhỏ minh hoạ khía cạnh thách thức đáp ứng 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 yêu cầu r = 1000 Khi ®ã Alice tÝnh: y = k + ar mod q = 543 + 755× 1000 mod 1031 = 851 gửi y cho Bob Sau Bob xác minh xem 84109 ≡ 70322851131361000(mod 88667) NÕu ®óng, Bob sÏ tin liên lạc với Alice Tiếp theo ta hÃy xem xét cách mạo danh Alice Olga - kẻ cố mạo danh Alice cách làm giả dấu xác nhận: C(Alice) = (ID(Alice), v’, s’), Trang Vietebooks Nguyễn Hồng Cương ®ã vv Song s đợc giả thiết chữ kí (ID(Alice), v, s) đợc Bob xác minh bớc giao thức Nếu sơ đồ chữ kí TA an toàn, Olga làm giả chữ kí s (mà sau bị Bob x¸c minh) BiƯn ph¸p kh¸c sÏ cho Olga dïng dÊu xác nhận Alice C(Alice) = (ID(Alice), v, s) (nhớ lại rằng, dấu xác nhận không mật thông tin dấu xác nhận bị lộ lần thực giao thức định danh) Tuy nhiên Olga mạo danh Alice cô ta biết giá trị a Đó yêu cầu r b−íc ë 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 toán logarithm rời rạc toán mà ta đà giả thiết giải đợc Có thể chứng minh định lí xác tính an toàn 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 giao thức xác minh Khi Olga tính a thời gian đa thức Chứng minh Với phần 2t yêu cầu r, Olga tính giá trị y (sẽ đợc Bob chấp nhận bớc 6) Vì 1/2t-1 nên ta có 2t/ vậy, Olga tính đợc giá trị y1,y2,r1 r2 cho y1 y2 y ẻ v y v Ỵ (mod p) hay α y − y ≡ v r r (mod p) Vì v = -a nên ta cã: y1-y2 ≡ a(r1- r2) (mod q) XÐt thÊy < | r1- r2 | 2t nguyên tố Vì UCLN(r1- r2, q) = vµ Olga cã thĨ tÝnh: a = (y1-y2)(r1 - r2)-1mod q nh− mong muèn… − 2 2 Định lý chứng minh rằng, có hội (không phải không đáng kể) thực thành công giao thức định danh phải biết (hoặc tính thời gian đa thức) số mũ mật a Alice Tính chất thờng đợc gọi tính đắn (sound) Dới ví dơ minh ho¹: Trang Vietebooks Nguyễn Hồng Cương VÝ dụ 9.3 Giả sử ta có tham số nh− 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) ®ã cã thĨ tÝnh: a =(851 - 454)(1000 - 19)-1 mod 1031 = 755 vµ nh− vËy sÏ kh¸m ph¸ sè mị mËt cđa Alice … Chóng ta ®· chøng minh r»ng, giao thøc có tính đắn đầy đủ Song tính đắn đầy đủ cha đủ để bảo đảm giao thức an toàn Chẳng hạn, Alice để lé sè mị mËt a cđa m×nh chøng minh danh tính cô với Olga giao thức đắn đầy đủ Tuy nhiên hoàn toàn không an toàn sau Olga mạo danh Alice Điều thúc đẩy động xem xét thông tin mật đà cho ngời xác minh - ng−êi còng tham gia giao thøc - biÕt (trong giao thức này, thông mật a) Hy vọng thông tin a bị gia tăng Olga Alice chứng minh danh tính cho cô ta, để sau Olga giả dạng nh Alice Nói chung, h×nh dung t×nh huèng Alice chøng minh danh tÝnh với Olga số tình khác Có lẽ Olga không chọn yêu cầu cô (tức giá trị r) theo kiểu ngẫu nhiên Sau vài lần thực giao thức, Olga cố gắng xác định giá trị a để sau mạo danh Alice Nếu Olga xác định đợc chút thông tin a qua tham gia với số lần đa thức thực giao thức sau thực lợng tính toán đa thức giao thức đợc gọi an toàn Hiện cha chứng minh đợc giao thc Schnorr an toàn, song phần tiếp sau, ta đa cải tiến sơ đồ (do Okmoto đa ra) mà chứng minh đợc an toàn cho trớc giả thuyết tính toán Sơ đồ Schnorr đà đợc thiết kế với tốc độ nhanh hiệu theo quan điểm tính toán lẫn lợng thông tin cần thiết ®Ĩ trao ®ỉi 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 Đây đặc tính tốt thực tế, tính toán Alice phải tính thẻ thông minh có khả tính toán thấp tính toán Bob lại máy lớn Vì mục đích thảo luận, ta hÃy giả sử rằng, ID(Alice) 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 dấu xác nhận C(Alice) (cần đợc lu thẻ Alice) 1444 bit Xét tính toán Alice: Bớc cần lấy mũ theo modulo, bớc so sánh phép công modulo phép nhân modulo Đó phép luỹ Trang Vietebooks Nguyn Hong Cng thừa modulo mạnh tính toán song tính toán gián tiếp muốn Còn tính toán trực tiếp đợc Alice thực bình thờng Việc tính số bit cần thiết trình liên lạc để thực giao thức đơ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 bớc 2: Bob đa cho Alice 40 bit bớc Alice đa cho Bob 160 bit bớc Nh yêu cầu liên lạc mức độ 9.3 Sơ đồ định danh Okamoto Trong phần ta đa biến thể sơ đồ Schnorr Okamoto đa Sơ đồ cải tiến Zp không giải đợc Để thiết lập sơ đồ, TA chọn p q nh sơ đồ Schnorr TA chọn hai phần tử Z*p có bậc q Giá trị c = log12 đợc giữ bí mật kể Alice Ta giả thiết rằng, không giải đợc (thậm chí Alice Olga liên minh với nhau) để tính giá trị c Nh trớc đây, TA chọn sơ đồ chữ kí số 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 ví dụ sơ đồ Okamoto VÝ dơ 9.4 Cịng nh− vÝ dơ tr−íc, ta lÊy p = 88667, q = 1031, t = 10 Cho = 58902 cho = 73611 (cả α1 lÉn α ®Ịu cã bËc q Z*p ) Giả sử a1=846, a2 = 515, v = 13078 Gi¶ sư Alice chän k1 = 899, k2 = 16, ®ã γ = 14573 NÕu Bob ®−a yêu cầu r = 489 Alice trả lêi y1 = 131 vµ y2 = 287 Bob sÏ xác minh thấy: 58902131786112871378489 14574 (mod 88667) Vì Bob chÊp nhËn b»ng chøng cđa Alice vỊ danh tÝnh cô Việc chứng minh giao thức đầy đủ không khó (tức Bob chấp nhận chứng danh tính cô) Sự khác sơ đồ Okamoto Schnorr chỗ, ta chứng minh sơ đồ Okamota an toàn miễn 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 TA thiết lập danh tính Alice phát chuỗi định danh ID(Alice) Alice chän bÝ mËt hai sè mò ngẫu nhiên a1,a2 a1,a2 q -1 Alice tÝnh: Trang Vietebooks Nguyễn Hoàng Cương v = α 1− a α 1− a mod p vµ đa cho TA TA tạo chữ kí s = sigTA(I,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 ý kiến chung: Nh trớc đây, Alice tự định danh với Olga nhiều thời gian đa thức thông qua thực giao thức Khi ta giả thiết Olga có khả nghiên cứu số thông tin giá trị a1,a2 Nếu nh Olga Alice kết hợp với có khả tính đợc logarithm rời rạc c thời gian đa thức Điều mâu thuẫn với giả định chứng tỏ Olga nhận đợc chút thông tin số mũ Alice thông qua việc tham gia vào giao thức Phần giao thức tơng tự với chứng minh tính đầy đủ sơ đồ Schnorr Định lý 9.2 Giả sử Olga biết a giá trị mà nhờ cô có xác suất thành công t-1 1/2 đánh giá Alice giao thức xác minh Khi đó, Olga tính giá trị b1,b2 thời gian đa thức cho v ≡ α 1− b α 1− b mod p Chứng minh: Với phần 2t yêu cầu r, Olga tính giá trị y1, y2, z1, z2, r vµ s víi r ≠ s vµ: γ ≡ α y α 2y vr ≡ z v8(mod p) Ta định nghĩa: b1= (y1 - z1)(r - s)-t mod q vµ b1= (y2 - z2)(r - s)-t mod q Khi ®ã dƠ dµng kiĨm tra thÊy r»ng: 2 2 v ≡ α 1− b1α 2− b2 (mod p ) nh− mong muèn.… Trang Vietebooks Nguyễn Hong Cng Hình 9.5 Sơ đồ định danh Okamoto Alice chọn số ngẫu nhiên k1, k2, k1, k2 ≤ q -1 vµ tÝnh: γ = α k α 2k (mod p) Alice göi dÊu xác nhận cô C(Alice) = (ID(Alice),v,s) cho Bob Bob xác minh chữ kí TA cách kiểm tra xem có thoả mÃn đồng thức: verTA(ID(Alice),v,s) = true Bob chän sè ngÉu nhiªn r, r 2t đa cho Alice Alice tÝnh: y1 = k1 + a1r mod q vµ y2 = k2 + a2r mod q đa y1,y2 cho Bob Bob x¸c minh xem: γ ≡ α 1y 2y vr(mod p) hay không Bây ta tiếp tục cách Alice Olga tính giá trị c Định lý 9.3 Giả sử Olga biết giá trị (mà với cô có xác suất giả danh Alice thành công 1/2t-1) giao thức xác minh Khi đó, Alice Olga có thÓ cïng tÝnh logα α thêi gian đa thức với xác suất 1-1/q Chứng minh Theo định lý 9.2, Olga có khả xác định giá trị b1 b2 cho v 1b 2b (mod p ) Giả thiết Alice để lộ giá trị a1 a2 cho Olga biết DÜ nhiªn: v ≡ α 1a α 2a (mod p ) v× thÕ α 1a −b ≡ α 2b − a (mod p) gi¶ sư r»ng (a1,a2) ≠ (b1,b2), (a1-b1)-1 tồn logarithm rời rạc: c = logα α = (a1-b1)(b2-a2)-1 mod q cã thÓ tÝnh đợc thời gian đa thức Phần lại xem xét xác suất để (a1,a2) = (b1,b2) Nếu xảy điều giá trị c tính theo mô tả Tuy nhiên, ta r»ng (a1,a2) = (b1,b2) sÏ chØ x¶y víi xác suất bé 1/q, giao thức nhờ Alice Olga tính đợc c hầu nh chắn thành công Định nghĩa: A ={ (a1' , a2' ) ∈ Ζ p × Ζ q : α1− a α 2− a ≡ α1− a α 2− a (mod p) } Nghĩa A gồm tất cặp đợc chúng c¸c sè mị mËt cđa Alice XÐt thÊy r»ng: A ={a1- cθ, a2 + θ : θ∈ZP}, 2 1 2 2 ' ' Trang ' ' Vietebooks Nguyễn Hồng Cương Trong ®ã c = logα Nh A chứa q cặp đợc Cặp đợc (b1,b2) Olga tính chắn ë tËp A Ta sÏ chØ r»ng, gi¸ trị cặp (b1,b2) độc lập với cặp (a1,a2) chứa số mũ mật Alice Vì (a1,a2) đợc Alice chọn 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) Alice q cặp đợc A thông tin (là cặp đúng) đà bị Alice để lộ cho Olga biết cô xng danh với Olga (Một cách hình thức, Olga biết mét cỈp A chøa sè mị cđa Alice song cô ta cặp nào) Ta hÃy xét thông tin đợc trao đổi giao thức định danh Về bản, lần thực giao thức, Alice chọn , Olga chọn r Alice để lé y1 vµ y2 cho: γ = α1y α1 y vr (mod p) Ta nhí l¹i r»ng, Alice tÝnh: y1 = k1 + a1r mod q vµ y2 = k2 + a2r mod q ®ã γ = α1k 1k mod q Chú ý k1 k2 không bị lộ (mà a1 a2 không) Bốn phần tử cụ thể (,r,y1,y2) đợc tạo thực giao thức tuỳ thuộc vào cặp (a1,a2) Alice y1 y2 đợc định nghĩa theo a1 a2 Tuy nhiên ta rằng, bốn nh đợc tạo nh từ cặp đợc khác (a1, a2) A Để thấy rõ, giả thiết (a1, a2) A, tức a1=a1 - c a2 = a2 + , ≤ θ ≤ 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)+a2r Trong tất phÐp tÝnh sè häc ®Ịu thùc hiƯn Zp NghÜa bốn (,r,y1,y2) phù hợp với cặp đợc (a1' , a 2' ) việc dùng phép chọn ngẫu nhiên k1' = k1 + rc k 2' = r để tạo Cần ý rằng, giá trị k1 k2 không bị Alice làm lộ nên (, r, y1, y2) không cho biết thông tin cặp A đợc Alice dùng làm số mũ mật cô Đây điều phải chứng minh. 1 2 Trang 10 Vietebooks Nguyễn Hồng Cương ViƯc chøng minh tÝnh an toàn tinh vi tối u Chắc hữu dụng để lắp đặ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 sè mị mËt cao chọn Có tổng cộng q cặp A tơng đơng với cặp (a1,a2) Alice Điều dẫn đến mâu thuẫn là, việc hiều biết hai cặp khác A cho phơng pháp hiệu tính toán logarithm rời rạc c Alice dĩ nhiên biết cặp A; ta chứng minh Olga giả danh Alice Olga tính cặp A khác với cặp Alice (với xác suất cao) Nh Alice Olga tìm hai cặp A tính c - cho mâu thuẫn nh mong muốn Dới ví dụ nhỏ minh hoạ việc Alice Olga tính toán log : VÝ dô 9.5 Gièng nh− 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: 11312287v489 18902303v199 (mod p) Khi c« tÝnh: b1 = (131 - 890)(489 - 199)-1 mod 1031 = 456 vµ b2 = (287 - 303)(489 - 199)-1 mod 1031 = 519 Dùng giá trị a1 a2 Alice đa cho, giá trị c tính nh− sau: c = (846 - 456)(519 - 515)-1 mod 1031 = 613 giá trị thực tế log mà xác minh cách tính: 58902613 mod 88667 = 73611 Cuối cùng, cần nhấn mạnh rằng, chứng minh đà biết chứng tỏ sơ đồ Schnorr an toàn (thậm chí giả thiết rằng, toán logarithm rời rạc không giải đợc) song ta nhợc điểm sơ đồ Thực sơ đồ Schnorr đợc a thích sơ đồ Okamoto nhanh 1 9.4 Sơ đồ định danh Guillou - quisquater Trong phần mô tả sơ đồ định danh khác Guillou Quisquater đa dựa RSA Việc thiết lập sơ đồ nh sau: TA chọn số nguyên tố p q lập tích n =pq Giá trị p q đợc giữ bÝ mËt n c«ng khai Gièng nh− tr−íc đây, p q nên chọn đủ lớn để việc phân tích n thực đợc Cũng nh vậy, TA chọn số nguyên tố đủ lớn b giữ chức tham số mật nh số mũ mật RSA Giả thiết b số nguyên tố dài 40 bít Cuối TA chọn sơ đồ chữ kí hàm hash Hình 9.6: Phát dấu xác nhận cho Alice TA thiết lập định danh cho Alice phát chuỗi định danh ID(Alice) Trang 11 Vietebooks Nguyn Hong Cng Alice chän bÝ mËt mét sè nguyªn u, ®ã ≤ u ≤ n -1 Alice tÝnh: v = (u-1)b mod n đa u cho TA TA tạo chữ kí: s = sigTA(I,v) Dấu xác nhận: C(Alice) = (ID(Alice), v, s) đa cho Alice Dấu xác nhận TA phát cho Alice đợc xây dựng nh mô tả 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 đắn đầy đủ Tuy nhiên, sơ đồ không đợc chứng minh an toàn (mặc dù giả thiết hệ thống mà RSA an toàn) Ví dụ 9.6: Giả sử TA chọn p = 467, q = 479, v× thÕ n = 223693 Giả sử b = 503 số nguyên mật 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 Alice chọn số ngẫu nhiên k, k ≤ n -1 vµ tÝnh: γ = kb mod n Alice đa cho Bob dấu xác nhận cô C(Alice) = (ID(Alice), v, s) Bob xác minh chữ kí TA cách kiểm tra xem có thoả mÃn hay không đồng d thức: ver(ID(Alice), v, s) = true Bob chän sè ngÉu nhiªn r, r b -1 đa cho Alice Alice tÝnh: y = k u’ mod n đa y cho Bob Bob xác minh r»ng γ ≡ vryb (mod n) Gi¶ sư Bob tr¶ lời yêu cầu r = 375 Khi Alice sÏ tÝnh y = ku’ mod n = 187485 × 101576375 mod 223693 = 93725 đa cho Bob Bob xác minh thấy: 24412 8988837593725503(mod 223693) 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 đủ đơ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 đắn Ta chứng minh sơ đồ đắn miễn không dễ dàng tính đợc u từ v Vì v đợc lập từ u phép mà RSA nên giả thiết hợp lý Định lí 9.4 Giảsử Olga biết giá trị nhờ cô có xác suất thành công việc giả danh Alice > 1/b giao thức xác minh Khi Olga tÝnh u thêi gian ®a thøc Chøng minh Víi đó, Olga tính giá trị y1, y2, r1, r2 víi r1 ≠ r2 cho: γ ≡ v r y b ≡ v r y2b (mod n) không tính tổng quát, giả sử r1 > r2 Khi ®ã ta cã: v r1 − r2 ≡ ( y2 / y1 )b (mod n) < r1- r2