Để 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ẻ)
Chương Các sơ đồ định danh 9.1 Giới thiệu Các kỹ thuật mật mã cho phép nhiều toán dường khơng thể giải thành giải Một toán 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 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 mưu đồ xấu thẻ tín dụng hoạt động theo cách Thẻ ATM an toàn chút song cịn điểm yếu Ví dụ, điều khiển đường dây liên lạc nhận tất thơng tin mã hố dải từ tính thẻ 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 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” Alice tư xưng danh với Bob tự bịa đặt Alice Ngồ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 nêu Một mục đích thực tế tìm sơ đồ đủ đơn giản để thự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 tốn số học Vì thế, thẻ địi hỏi khối lượng tính tốn lẫn nhớ nhỏ đến mức Thẻ an tồ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 đườ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 xét sơ đồ đơn giản dựa hệ thống mã khố riêng bất kì, chẳng hạn DES Giao thức mơ tả hình 9.1 gọi giao thức “yêu cầu trả lời”, giả thiết rằng, Alice tự xưng danh với Bob Bob chia khố mật chung K, khố 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 cho Bob Bob tính: y’ = eK(x) xác minh y’ = y Ta minh hoạ giao thức ví dụ nhỏ 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 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 uỷ quyền có tín nhiệm mà ta ký hiệu TA Ta chọn tham số cho sơ đồ 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 q ước nguyên tố lớn p-1 (tức q 2140) Z *p có bậc q (có thể tính (p-1) ) công khai TA đóng dấu xác nhận cho Alice Khi Alice muốn nhận dấu xác thực từ TA, cô phải tiến hành bước hình 9.2 Vào thời điểm cuối, Alice muốn chứng minh danh tính cô trước Bob, cô thực giao thức 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 u cầu r Bob Ví dụ, Olga đốn giá trị r, ta chọn giá trị cho y tính = yv mod p Cô đưa cho Bob bước sau nhận yêu cầu r, cô cung cấp giá trị y chọn sẵn Khi Bob xác minh bước Hình 9.2 Cấp dấu xác nhận cho Alice TA thiết lập danh tính Alice cách lập giấy chứng minh thông thường chẳng hạn 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 ta Alice bí mật chọn số mũ ngẫu nhiên a, a q-1 Alice tính: v = -a mod p 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 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 xưng 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ự 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ự 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 số ngẫu nhiên k, k q-1 tính: = k mod p 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, 1 r 2t đưa cho Alice Alice tính: y = k + ar mod q đư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 cho Bob: yvr k+arvr (mod p) k+arvar (mod p) k(mod p) (mod p) Như chấp nhận chứng danh tính Alice giao thứ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 Alice a = 755 Khi đó: v = -a( mod p) = 703221031-755mod 88667 = 13136 Giả sử Alice chọn k = 543, sau tính: = k mod p = 70322543 mod 88667 = 84109 gửi cho Bob Giả thiết Bob đưa 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 tin liên lạc với Alice Tiếp theo ta 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’), v’v Song s’ giả thiết chữ kí (ID(Alice), v’, s’) Bob xác minh bước giao thức Nếu sơ đồ chữ kí TA an tồn, Olga khơng thể làm giả chữ kí s’ (mà sau bị Bob xác minh) Biện pháp khác 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 Đó “u cầu” r bước bước 5, Olga phải tính y mà y hàm 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 khơng thể giải Có thể chứng minh định lí xác tính an tồn giao thức sau: Định lí 9.1 Giả sử Olga biết giá trị nhờ 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 u cầu r, Olga tính giá trị y (sẽ Bob chấp nhận bước 6) Vì 1/2t-1 nên ta có 2t/ vậy, Olga tính 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) = Olga tính: a = (y1-y2)(r1 - r2)-1mod q 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 gọi tính đắn (sound) Dưới ví dụ minh hoạ: Ví dụ 9.3 Giả sử ta có tham số ví dụ 9.2: p = 88667, q = 1031, t= 10, = 70322, a = 755 v = 13136 Giả sử Olga nghiên cứu thấy rằng: 851v1000 454v19(mod p) tính: a =(851 - 454)(1000 - 19)-1 mod 1031 = 755 khám phá số mũ mật Alice … Chúng ta chứng minh rằng, giao thức có tính đắn đầy đủ Song tính đắn đầy đủ chưa đủ để bảo đảm giao thức an toàn Chẳng hạn, Alice để lộ số mũ mật a chứng minh danh tính với Olga giao thức cịn đắn đầy đủ Tuy nhiên hồn tồn khơng an tồ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 tham gia giao thức - biết (trong giao thức này, thơng mật a) Hy vọng khơng có thơng tin a bị gia tăng Olga Alice chứng minh danh tính cho ta, để sau Olga giả dạng Alice Nói chung, hình dung tình 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 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 tốn đa thức giao thức gọi an toàn Hiện chưa chứng minh giao thưc 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 an tồn cho trước giả thuyết tính tốn Sơ đồ Schnorr thiết kế với tốc độ nhanh hiệu theo quan điểm tính tốn lẫn lượng thông tin cần thiết để trao đổi giao thức Nó thiết kế nhằm tối thiểu hố lượng tính tốn mà Alice phải thực Đây đặc tính tốt thực tế, tính tốn Alice phải tính thẻ thơng minh có khả tính tốn thấp tính tốn Bob lại máy lớn Vì mục đích thảo luận, ta giả sử rằng, ID(Alice) chuỗi 512 bit, v gồm 512 bit, s 320 bit nến DSS dùng sơ đồ chữ kí Kích thước tổng cộng dấu xác nhận C(Alice) (cần lưu thẻ Alice) 1444 bit Xét tính tố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ỹ thừa modulo mạnh tính tốn song tính tốn gián tiếp muốn Cịn tính tốn trực tiếp Alice thực bình thường Việc tính số bit cần thiết q trình liên lạc để thực giao thức đơn giản Có thể mơ tả thơng tin liên lạc dạng đồ 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 Để thiết lập sơ đồ, TA chọn p q sơ đồ Schnorr TA chọn hai phần tử 1 Z *p có bậc q Giá trị c = log12 giữ bí mật kể Alice Ta giả thiết rằng, khơng giải (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 xây dựng mô tả hình 9.4 Dưới ví dụ sơ đồ Okamoto Ví dụ 9.4 Cũng ví dụ trước, ta lấy p = 88667, q = 1031, t = 10 Cho 1 = 58902 cho 2 = 73611 (cả 1 lẫn 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 y2 = 287 Bob xác minh thấy: 58902131786112871378489 14574 (mod 88667) Vì Bob chấp nhận chứng Alice danh tính … 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 tồn miễn tốn logarithm rời rác khơng giải 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: v = 1 a 1 a mod p đư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 tính an tồn 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 Olga Alice kết hợp với có khả tính 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 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ó 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 s với r s và: 1 y 2y vr 1 z 2 v8(mod p) Ta định nghĩa: b1= (y1 - z1)(r - s)-t mod q b1= (y2 - z2)(r - s)-t mod q Khi dễ dàng kiểm tra thấy rằng: 1 2 v 1b1 2 b2 (mod p) mong muốn.… Hình 9.5 Sơ đồ định danh Okamoto Alice chọn số ngẫu nhiên k1, k2, k1, k2 q -1 tính: = 1 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, 1 r 2t đưa cho Alice Alice tính: y1 = k1 + a1r mod q 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ó xác suất giả danh Alice thành cơng 1/2t-1) giao thức xác minh Khi đó, Alice Olga 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) 1a b 2b a (mod p) giả sử (a1,a2) (b1,b2), (a1-b1)-1 tồn logarithm rời rạc: c = log (a1-b1)(b2-a2)-1 mod q tính thời gian đa thức Phần cịn lại xem xét xác suất để (a1,a2) = (b1,b2) Nếu xảy điều giá trị c khơng thể tính theo mơ tả Tuy nhiên, ta (a1,a2) = (b1,b2) xảy với xác suất bé 1/q, giao thức nhờ Alice Olga tính c 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 chúng số mũ mật Alice Xét thấy rằng: A ={a1- c, a2 + : ZP}, 2 1 2 2 ' ' ' ' Trong c = log Như A chứa q cặp Cặp (b1,b2) Olga tính chắn tập A Ta 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) Alice chọn cách ngẫu nhiên nên xác suất để (a1,a2) = (b1,b2) 1/q Như vậy, (b1,b2) “độc lập” với (a1,a2) Cặp (a1,a2) Alice q cặp A khơng có thơng tin (là cặp “đúng”) bị Alice để lộ cho Olga biết cô xưng danh với Olga (Một cách hình thức, Olga biết cặp A chứa số mũ Alice song cô ta cặp nào) Ta xét thơng tin 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 y2 cho: = 1y 1 y vr (mod p) Ta nhớ lại rằng, Alice tính: y1 = k1 + a1r mod q 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) tạo thực giao thức tuỳ thuộc vào cặp (a1,a2) Alice y1 y2 định nghĩa theo a1 a2 Tuy nhiên ta rằng, bốn tạo từ cặp khác (a’1, a’2) A Để thấy rõ, giả thiết (a’1, a’2) A, tức a’1=a1 - c a’2 = a2 + , q -1 Có thể biểu diễn y1 y2 sau: y1 = k1 + a1r = k1 + (a1’+ c)r = (k1 + rc)+a1’r y2 = k2 + a2r = k2 + (a2’ - )r = (k2 - r)+a2’r Trong tất phép tính số học thực Zp Nghĩa bốn (,r,y1,y2) phù hợp với cặp (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 Alice dùng làm số mũ mật cô Đây điều phải chứng minh.… 1 2 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 giao thức, dẫn tới chứng 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 tố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 mong muốn Dưới ví dụ nhỏ minh hoạ việc Alice Olga tính tốn log : Ví dụ 9.5 Giống ví dụ 9.4, ta lấy p =88667, q = 1031, t = 10 giả sử v = 13078 Giả thiết Olga xác định rằng: 11312287v489 18902303v199 (mod p) Khi tính: b1 = (131 - 890)(489 - 199)-1 mod 1031 = 456 b2 = (287 - 303)(489 - 199)-1 mod 1031 = 519 Dùng giá trị a1 a2 Alice đưa cho, giá trị c tí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, khơng có chứng minh biết chứng tỏ sơ đồ Schnorr an toàn (thậm chí giả thiết rằng, tốn logarithm rời rạc khơng giải được) song ta khơng biết nhược điểm sơ đồ Thực sơ đồ Schnorr ư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ơ đồ sau: TA chọn số nguyên tố p q lập tích n =pq Giá trị p q giữ bí mật n cơng khai Giống trước đây, p q nên chọn đủ lớn để việc phân tích n khơng thể thực Cũng vậy, TA chọn số nguyên tố đủ lớn b giữ chức tham số mật 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) Alice chọn bí 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 xây dựng mô tả hình 9.6 Khi Alice muốn chứng minh danh tính cho Bob, thực giao thức hình 9.7 Ta chứng minh rằng, sơ đồ Guillou - Quisquater đắn đầy đủ Tuy nhiên, sơ đồ khơng chứng minh an tồn (mặc dù giả thiết hệ thống mã RSA an tồn) Ví dụ 9.6: Giả sử TA chọn p = 467, q = 479, n = 223693 Giả sử b = 503 số nguyên mật Alice u = 101576 Khi 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 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 vryb (mod n) Giả sử Bob trả lời yêu cầu r = 375 Khi Alice 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 chứng danh tính Alice … Giống 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 ta xét đến tính đắn Ta chứng minh sơ đồ đắn miễn không dễ dàng tính u từ v Vì v 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ó 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 qt, giả sử r1 > r2 Khi ta có: v r1 r2 ( y2 / y1 )b (mod n) < r1- r2