Phân tích module Rabin với chương trình giải mã cho trước
Hình 4.14. Phân tích modulus của rabin với một chơng trình con giải mã cho trớc.Bởi vậy giá trị x sẽ thu đợc ở bớc 3. Tiếp theo xét bớc 4. Nhận thấy rằng x12 = r2 (mod n). Điều đó dẫn tới x1 r (mod n) hoặc x1 wr (mod n), trong đó w là một trong các căn bậc hai không tầm thờng của 1 modulo n. Trong trờng hợp thứ hai ta có :n(x1-r )(x1+r)song n không phải là ớc của một thừa số nào ở vế phải. Bởi vậy, việc tính UCLN(x1 +r,n)(hoặc UCLN(x1-r, n)) phải dẫn tới hoặc p hoặc q, và nh vậy phép phân tích n đợc hoàn thành.Ta sẽ tính xác suất thành công của thuật toán này trên tất cả (n-1) phép chọn ngẫu nhiên r. Với hai thặng d khác không r1 và r2 , định nghĩa: r1 ~ r2 r12 r22 (mod n) Dễ dàng thấy rằng r ~ r với mọi r, r1 ~ r2 cũng có nghĩa là r2 ~ r1; r1 ~ r2 và r2 ~ r3 thì r1 ~ r3 . Điều đó cho ta thấy rằng quan hệ ~ là một quan hệ tơng đơng. Các lớp tơng đơng của Zn\{0} đều có bốn phần tử, lớp tơng đơng chứa r là tập [r] = {r, wr (mod n)}trong đó w là căn bậc hai không tầm thờng của 1 modulo n.1. Chọn một số ngẫu nhiên r , 1 r n-12. Tính y = r2 - B2/4 mod n3. Gọi chơng trình con A(y) để tìm bản giải mã x4. Tính x1 = x+B/25. If x1 r (mod n) then quit (không thành công) Else UCLN(x1+r,n)=p hoặc q (thành công) Trong thuật toán đợc trình bày ở hình 4.14, hai giá trị r bất kỳ trong cùng một lớp tơng đơng sẽ dẫn tới cùng một giá trị y. Bây giờ xét giá trị x thu đợc từ chơng trình con A khi đã biết y. Ta có:[y]={y, wy}Nếu r=y thì thuật toán không thành công; trong khi nếu r=wy thì thuật toán sẽ thành công. Vì r đợc chọn ngẫu nhiên, nên một giá trị bất kỳ trong bốn giá trị có thể đều cùng khả năng. Ta kết luận rằng xác suất thành công của thuật toán là 1/2. Điều thú vị là hệ mật rabin là an toàn đối với phơng pháp tấn công bản rõ chọn lọc, mhmg hệ này lại hoàn toàn không an toànđối với phơng pháp tấn công bảm mã chọn lọc. Thuật toán ở hình 4.14, phần dùng để chứng minh sự an toàn đối với phép tấn công bản rõ chọn lọc cũng có thể đợc dùng để phá hệ mật Rabin khi thực hiện tấn công bản mã chọn lọc!. Trong phơng pháp tấn công bản mã chọn lọc, chơng trình con A đợc thay bằng thuật toán giải mã của Bob.4.8. Các thuật toán phân tích thừa số.Đã có một khối lợng khổng lồ các tìa liệu về các thuật toán phân tích thừa số và việc nghiên cứu kỹ lỡng sẽ đòi hỏi phải có một cuốn sách dày hơn quyển sách này. ở đây chỉ cố gắng đa ra một cái nhìn khái quát bao gồm việc thảo luận sơ lợc về các thuật toán phân tichs thừa số tốt nhất hiện thời và cách sử dụng chúng trong thực tế. Ba thuật toán hiệu quả nhất trên các số thật lớn là sàng bậc hai, thuật toán đờng cong elliptic và sàng trờng số. Các thuật toán nổi tiếng khác (những thuật toán toán có trớc) bao gồm phơng pháp và thuật toán p-1 của Pollard, thuật toán p+1 của Williams, thuật toán liên phân số và dĩ nhiên cả những phép chia thử.Trong toàn bộ phần này, xchúng ta cỏìng số nguyên n cần phân tích ra thừa số là một số lẻ. Phép chia thử bao gồm việc chia n cho từng số nguyên lẻ cho tới . Nếu n < 1012 thì đây là mộtphơng pháp phân tích thừa số hợp lý một cách hoàn hảo, tuy nhiên với n lớn hơn nói chung ta phải dùng các kỹ thuật tinh tế hơn.[ ]n 4.8.1. Phơng pháp p-1Thuật toán p-1 của Pollar (đa ra vào năm 1947) là một thí dụ về một thuật toán đơn giản đơn khi đợc áp dụng với các số nguyên lớn. Thuật toán này (trình bày trên hình 4.15) có hai đầu vào: số nguyên lẻ n cần đợc phân tích và một cận B. Có thể mô tả thuật toán nh sau:Hình 4.15. Thuật toán phân tích thừa số p-1.Giả sử p là ớc mhuyên tố của n và q B , với mỗi mũ nguyên tố p(p-1). Khi đó(p-1)B!ở cuối vòng lặp for (bớc 2)a 2B! (mod n)nên a 2B! (mod p) vì pn. nên theo định ý Fermat ta có : 135979 ì 115979Trong trờng hợp này, phép phân tích sẽ thành công do 135978 chỉ gồm các thừa số nguyên tố nhỏ:Vì thế 135978 = 2 ì 3 ì131 ì 173nếu lấy B 173 thì chắc chăn rằng 135978B! nh mong muốn.Đầu vào: n và B1. a=22. For j=2 to B do a = aj mod n3. d = UCLN(a-1,n)4. if 1 < d < n then d là một thừa số của n else không tìm đợc thừa số của n (không thành công) Trong thuật toán có (B-1) luỹ thừa theo modulo, mỗi luỹ cần nhiều nhất là 2log2B phép nhân modulo dùng thuật toán bình phơng và nhân. Việc tính ớc chung lớn nhất có thể thực hiện trong thời gian O((log n)3) bằng thuật toán Euclide. Bởi vậy, độ phức tạp của thuật toán là O(B logB (log n)2 +(log n)3). Nếu B là O((log n)i) với một số nguyên i xác định nào đó thì thuật toán thực sự là thuật toán thời gian đa thức, tuy nhiên với phép chọn B nh vậy, xác suất thành công sẽ rất nhỏ. Mặt khác, nếu tăng kích thớc của B lên thật lớn (chẳng hạn tới ?????????????? ) thì thuật toán sẽ thành công nhng nó sẽ không thực hiện nhanh hơn phép chia thử.Nh vậy, điểm bất lợi của thuật toán này là nó yêu cầu n phải có ớc nguyên tố p sao cho (p-1) chỉ các thừa số nguyên tố bé. Ta có thể dễ dàng xây dựng đợc hệ mật RSA với modulus n= pq hạn chế đợc việc phân tích theo phơng pháp này. Trớc tiên tìm một số nguyên tố lớn p1 sao cho p= 2p1+1 cũng là một số nguyên tố và một số nguyên tố lớn q1 sao cho q= 2q1+1 cũng là một số nguyên tố (nhờ dùng một trong các thuật toán kiểm tra tính nguyên tố Monte-Carlo nêu trong phần 4.5). Khi đó modulo của RSA n= pq sẽ chống đợc cách phân tích theo phơng pháp p-1. Thuật toán đờng cong elliptic mạnh hơn (đợc Lenstra xây dựng vào những năm 1980) trên thực tế là sự tổng quát hoá của phơng pháp p-1. Ta sẽ không thảo luận về lý thuyết ở đây mà chỉ nhấn mạnh rằng, thành công của phơng pháp đờng cong elliptic tuỳ thuộc vào tình huống tơng tự : một số nguyên gần với p chỉ có các thừa số nguyên tố bé. Trong khi phơng pháp p-1 phụ thuộc vào quan hệ trong Zp thì phơng pháp đờng cong elliptic phụ thuộc vào các nhóm xác định trên các đờng cong elliptic theo modulo n.4.8.2. Thuật toán Dixon và sàng bậc haiThuật toán Dixon đợc xây dựng trên ý tởng đơn giản mà ta đã thấy trong hệ mật Rabin. ý tởng đó là: nếu tìm đợc x y (mod n) sao cho x2y2 (mod n) thì UCLN(x-y,n) là ớc không tầm thờng của n.Phơng pháp này sử dụng cơ sở nhân tử là một tập b chứa các số nguyên tố bé. Trớc tiên ta nhận đợc một vài số nguyên x sao cho tất cả các thừa số nguyên tốcủa x2 (mod n) nằm trong cơ sở b (cách thực hiện điều này sẽ đợc thảo luận sau). ý tởng thực hiên ở đây là lấy tích của một vài giá trĩ sao cho mỗi số nguyên tố trong cơ sở đợc sử dụng một số chẵn lần. Điều này dẫn đến một đồng d thức dạng mong muốn x2 y2 (mod n) mà ta hy vọng sẽ đa đến việc phân tích n.Ta sẽ minh hoạ bằng một ví dụ đã đợc dự tính kỹ lỡng.Ví dụ 4.15Giả sử n=15770708441(giá trị n này đã dùng trong ví dụ 4.14). Giả sử b = {2,3,5,7,11,13}. Xét ba đồng thức sau:83409341562 3 ì 7 (mod n) 120449429442 1 ì 7 ì 13 (mod n) 27737000112 =2 ì 3 ì 13 (mod n) Nếu lấy tích của ba đồng d thức trên:(8340934156 ì 2044942944ì2773700011)2 (2ì 3ì 7ì 13)2 (mod n)Rút gọn các biểu thức bên trong các dấu ngặc theo modulo n, ta có:95034357852 5462 (mod n)Sau đó tính:UCLN(9503435785-546, 15770708441)=115759Ta thấy 115759 là một thừa số của n. Giả sử B = {p1, . . . .pB}là một cơ sở nhân tử. Giả sử c lớn hơn B một chút (chẳng hạn C=B+10) và giả sử ta đã có C đồng d thức:xj2 p11j ì p22j ì . . .ì pBBj(mod n)với 1 j C. Với mỗi j xét véctor :aj = (1j mod 2, 2j mod 2, . . ., Bj mod 2) (Z2)BNếu có thể tìm đợc một tập con các aj sao cho tổng theo modulo 2 là vector (0,. . ., 0) thì tích của các xj tơng ứng sẽ sử dụng mỗi nhân tử trong B một số chẵn lần.Ta sẽ minh hoạ bằng cách trở lại ví dụ 4.15. Trong trờng hợp này nếu C < B, vẫn tìm đợc sự phụ thuộc tuyến tính.Ví dụ 4.15 (tiếp) Cho 3 vector a1, a2, a3 :a1 =(0, 1, 0, 1, 0, 0)a2 =(1, 0, 0, 1, 0, 1)a3 = (1, 1, 0, 0, 0, 1)Dễ dàng thấy rằng:a1 +a2 + a3 = (0, 0, 0, 0, 0, 0) mod 2Đây là lý do cho thấy đồng d thức (thiết lập theo tích) sẽ phân tích thành công đợc n.Nhận thấy rằng, bài toán tìm một tập con C vector a1, a2, . . ., aC sao cho tổng theo modulo 2 là một vector toàn chứa số 0 chính là bài toán tìm sự phụ thuộc tuyến tính (trên Z2) của các vector này. Với C > B, sự phụ thuộc tuyến tính này nhất định phải tồn tại và ta có thể dễ dàng tìm đợc bằng phơng pháp loại trừ Gaux. Lý do giải thích tại sao lấy C > B+1 là do không có gì bảo đảm để một đồng d thức cho trớc bất kỳ sẽ tạo đợc phân tích n. Khoảng 50% thuật toán cho ra x y (mod n). Tuy nhiên nếu C > B+1 thì có thể nhận đợc một vài đồng d thức nh vậy. (Nảy sinh từ các phụ thuộc tuyến tính khác của các aj). Hy vọng là ít nhất một trong các đồng d thức kết quả sẽ dẫn đến việc phân tích n.Vấn đề còn lại là phải làm thế nào để nhận đợc các số nguyên xj mà các giá trị xj2 mod n có thể phân tích hoàn toàn trên cơ sở b. Một vài phơng pháp có thể thực hiện đợc điều đó. Biện pháp sàng bậc hai do Pomerance đa ra dùng các số nguyên dạng xj=j + ,j=1,2 Tên sàng bậc hai lấy từ thủ tục sàng (không mô tả ở đây) dùng để xác định các xj phân tích đợc trên b. ở đây dĩ nhiên là một sự thoả hiệp: nếu B = | B | là một số lớn thì thích hợp hơn cả là nên phân tích số nguyên xj trên b. Tuy nhiên khi B càng lớn thì ta càng phải gom nhiều đồng d thức hơn trớc khi có thể tìm đợc một quan hệ phụ thuộc. Lựa chọn tối u cho B xấp xỉ bằng??????????????????[ ]n và điều này dẫn đến thời gian thực hiện cỡ ??????????????????????????Sàng trờng số là thuật toán phân tích mới hơn (từ cuối những năm 80) Thuật toán này cũng phân tích n bằng cách xây dựng một đồng d thức x2 y2 (mod n), song nó đợc thực hiện bằng các tính toán trên vành các số đại số.4.8.3.Các thuật toán phân tích trên thực tế.Thời gian chạy tiệm cận của các thuật toán sàng bậc hai, đơng cong elliptic và sàng trờng số nh sau: Sàng bậc hai O?????????????// Đờng cong elliptic ?????????????? Sàng trờng số ?????????????????trong đó O(1) là hàm của n, hàm này tiến tới 0 khi n và p là thừa số nguyên tố nhỏ nhất của n.Trong trờng hợp xấu nhất p ?????????, thời gian chạy tiệm cận của các thuật toán đờng cong elliptic và sàng bậc hai cơ bản nh nhau. Tuy nhiên trong trờng hợp này, phơng pháp sàng bậc hai nói chung trội hơn phơng pháp đờng cong elliptic. Phơng pháp đơng cong elliptic hiệu quả hơn nếu các thừa số nguyên tố của n có kích thớc khác nhau. Một số rất lớn đã đợc phân tích bằng phơng pháp đờng cong elliptic là tham số Fermat (22048-1) (đợc Brent thực hiện năm 1988) .Để phân tích các modulo RSA (trong đó n=pq, p và q là các số nguyên tố có cùng kích thớc), sàng bậc hai là một thuật toán thành công nhất hiện nay. Sau đây là một số kết quả quan trọng. Vào năm 1983, thuật toán sàng bậc hai đã phân tích thành công một số có 69 chữ số, số này là một thừa số của 2251-1 (do Davis, Holdredye và Simmons thực hiện). Quá trình này tiếp tục trong những năm 80 và đến năm 1989 đã có thể phân tích đợc các số có tới 106 chữ số theo phơng pháp này( do Lenstra và Manasse thực hiện) nhờ phân bố các phép tính cho hàng trăm trạm làm việc tách biệt (ngời ta gọi phơng pháp này là phân tích thừa số bằng th điện tử). [ ]n Gần đây hơn, 4/1994 Atkins, Graff, Lenstra và Leyland đã phân tích đợc một số 129 chữ số (đợc gọi là RSA-129) nhờ sử dụng sàng bậc hai (các số RSA-100, RSA-110, ,RSA-500 là một danh sách các modulo RSA đợc công bố trên internet nh là sự thách đố cho các thuật toán phân tích. Mỗi một số RSA-d là một số d chữ số, số này là tích của hai số nguyên tố có kích thớc xấp xỉ nhau). Việc phân tích số RSA-129 cần hàng trăm tính toán với máy tính 5000 MIPS (triệu lệnh/s) đợc thực hiện bởi 600 nhà nghiên cứu trên toàn thế giới.Sàng trờng số là một thuật toán mới nhất trong ba thuật toán toán. Nó có vẻ có tiềm năng lớn do thời gian chạy tiệm cận của nó nhanh hơpn cả hai thuật toán trên. Thuật toán này hiện vẫn còn trong thời kì nghiên cứu, tuy nhiên ngời ta đã dự đoán là sàng trờng số phải chứng tỏ là nhanh hơn với các số có trên 125-130 chữ số. Năm 1990, Lenstra, Manase và Pollaid đã dùng sàng trờng số để phân tích (2512 - 1) thành ba số nguyên tố có 7, 49 và 99 chữ số.4.9. chú giải và tai liêu dẫn ý tởng về mật mã khoá công khai đã đợc Diffie và Hellman nêu ra vào 1976. Mặc dù [HD 76A] là tài liệu đợc trích dẫn nhiều nhất những bài báo Hội nghị [DH 76] thực tế đã xuất hiện sớm hơn một chút. Hệ mật RSA đợc Rivest, Shamis và Adleman [RSA 78] phát minh. Hệ mật Rabin đợc mô tả trong [RA 79]: một hệ tơng tự với phép giải mã không mập mờ đã đợc Willians tìm ra trong [Wi 80]. Bạn đọc nếu tham khảo [Di 92] là một bài báo tổng quát và mặt mã khoá công khai của Diffie.Phép thử Solovay- Stassen lần đầu tiên mô tả trong [SS 77]. Phép thử Miller- Rabin đợc nêu trong[Mi 76] và [Ra 80]. Thảo luận của chúng ta về các xác suất sai dựa trên các nhập xét của Brassard và Bratly [BB 88A, 8.6] (cũng có thể trong[BBCGP 88]. Các cận tối nhất hiện thời về xác suất sai của thuật toán Miller- Rabin có thể tìm thấy trong [DLP 93].Nội dung của phần 4.6 dựa trên quan điểm của Salomaa [SA 90, các trang 143-154]. Phép phân tích n với số mũ giải mã cho trớc đợc nêu trong [DE 84]: các kết quả về thông tin riêng bị lộ bởi RSA lấy từ [GMT 82].Nh đã nói trên, đã có rất nguồn tài liệu về các thuật toán phân tích. Pomerance [Po 90]là tổng quát về phếp phân tích. Lenstra và Lenstra [LL 90] là một báo cáo hay là về các thuật toán lý thuyết nói chung. Bressoud [Br 89] là một giáo trình sơ cấp về phép phân tích thừa số và phép kiểm tra tính nguyên tố. Các giáo trinh về mật mã có chú trọng tới lý thuyết số là các sách của Koblitz [Ko 87] và của Kranakis [Kr 86]. Còn sách của Lenstra và Lenstra [LL 93] là một chuyên thảo tốt về sàng trờng số.Các bài tập 4.7- 4.9 cho một số ví dụ về trục trặc trong giao thức (protocol). Về vấn đề này có thể xem một bài báo rất hay của Moore [Mo 92]. Bài tập4.1. Hãy dùng thuật toán Euclide mỡ rộng để tính các phần tử nghịch đảo rau:a) 17-1 mod 101b) 357-1 mod 1234c) 3125-1 mod 99874.2. Giải hệ phơng trình đồng d sau:x 12 (mod 25)x 9 (mod 26)x 23 (mod 27)4.3. Giải hệ phơng trình đồng d sau13x 4 (mod 99)15x 56 (mod 101)gợi ý: trớc tiên hãy dùng thuật toán Euclide mỡ rông rồi áp dụng định lý phần d của China.4.4. Ta nghiên cứu một số tính chất của các căn nguyên thuỷ a) 97 là một số nguyen tố. Hãy chứng minh rằng x 0 là một căn nguyên thuỷ theo modulo 97 khi và chỉ khi x32 1 (mod 97) và x48 1 (mod 97)b) Hãy dùng phơng pháp này để tìm căn nguyên thuỷ nhỏ nhất theo modulo 97.c) Giả sử p là một số nguyên tố và p-1 có phần tích ra các mũ nguyên tố sau :==n1 i1eip 1p ở đây pi là các số nguyên tố khác nhau. Hãy chứng minh tỏ rằng x 0 là một căn nguyên thuỷ theo modulo p khi và chỉ khi x(p-1)/pi 1 (mod p ) với 1 i n 4.5. Giả sử n =pq, p và aq là các số nguyên tố lẻ phân biệt vad ab 1 (mod (p-1)(q-1)). Phép toán mã hoá RSA là e(x) = xb mod nvà phép toán giải mã là d(y) = ya mod n.Ta đã chứng tỏ rằng d(e(x)) = 1 nếu x Zn *. Hãy chứng tỏ rằng khẳng định trên là đúng đối với bất kỳ x Zn. Chỉ dẫn: Hãy dùng kết quả : x1 x1 (mod pq) khi và chỉ khi x1 x1 (mod p) và x1 x1(mod q). Điều này rút ra từ định lý phần d China.4.6. Hai ví dụ về bản mã RSA đợc nêu ở các bảng 4.1 và bảng 4.2. Nhiệm vụ của bạn là phải giải mã chúng. Các tham số công khai của hệ thống là n =18923 và b = 1261 (bảng 4.1) và n = 31313, b = 4913 (với bảng 4.2). Phép giải mả cáo thể thực hiện nh sau. Trớc hết hỹ phân tích n (điều này khá dể vì n quá nhỏ). Sau đó tính số mũ a từ (n) và cuối cùng sẽ giải mã bản mã. Hãy dùng thuật toán bình phơng và nhân để lấy luỹ thừa theo modulo n.Bảng 4.1 Bản mã RSA12423 11524 7243 7459 14303 6127 10964 163999792 13692 14407 18817 18830 13556 3159 166475300 13951 91 8986 8007 13167 10022 172132264 9553 18194 3830 2664 13998 12501 1887313236 5300 13951 8850 12129 6091 18110 333215061 12347 7817 7946 11675 13924 13892 180312620 6276 8500 201 8850 11178 16477 101613533 13842 7537 12259 18110 44 2364 155703460 9886 8687 4481 11231 7547 11383 1791012867 13203 5102 4742 5053 15407 2976 933012192 56 2471 14334 841 13995 13297 81862430 9741 11675 242 6686 738 13874 8186 [...]... x j trên b. Tuy nhiên khi B càng lớn thì ta càng phải gom nhiều đồng d thức hơn trớc khi có thể tìm đợc một quan hệ phô thuéc. Lùa chän tèi u cho B xÊp xØ b»ng ?????????????????? [ ] n Hình 4.14. Phân tích modulus của rabin với một chơng trình con giải mà cho trớc. Bởi vậy giá trị x sẽ thu đợc ở bớc 3. Tiếp theo xét bớc 4. NhËn thÊy r»ng x 1 2 = r 2 (mod n). §iỊu ®ã dÉn tíi x 1 ≡ ±r (mod n) hc... 2 251 -1 (do Davis, Holdredye và Simmons thực hiện). Quá trình này tiếp tục trong những năm 80 và đến năm 1989 đà có thể phân tích đợc các số có tới 106 chữ số theo phơng pháp này( do Lenstra và Manasse thực hiện) nhờ phân bố các phép tính cho hàng trăm trạm làm việc tách biệt (ngời ta gọi phơng pháp này là phân tích thừa số bằng th điện tử). [ ] n Cho 3 vector a 1 , a 2 , a 3 : a 1 =(0, 1, 0, 1,... trừ Gaux. Lý do giải thích tại sao lấy C > B+1 là do không có gì bảo ®¶m ®Ĩ mét ®ång d thøc cho tríc bÊt kú sẽ tạo đợc phân tích n. Khoảng 50% thuật toán cho ra x ≡ ±y (mod n). Tuy nhiªn nÕu C > B+1 thì có thể nhận đợc một vài đồng d thức nh vậy. (Nảy sinh từ các phụ thuộc tuyến tính khác của các a j ). Hy vọng là ít nhất một trong các đồng d thức kết quả sẽ dẫn đến việc phân tích n. Vấn đề... r»ng: a 1 +a 2 + a 3 = (0, 0, 0, 0, 0, 0) mod 2 Đây là lý do cho thấy đồng d thức (thiết lập theo tích) sẽ phân tích thành công đợc n. Nhận thấy rằng, bài toán tìm một tập con C vector a 1 , a 2 , . . ., a C sao cho tæng theo modulo 2 lµ mét vector toµn chøa sè 0 chÝnh là bài toán tìm sự phụ thuộc tuyến tính (trên Z 2 ) của các vector này. Với C > B, sự phụ thuộc tuyến tính này nhất định phải tồn... nhau. Một số rất lớn đà đợc phân tích bằng phơng pháp đờng cong elliptic là tham số Fermat (2 2048 -1) (đợc Brent thực hiện năm 1988) . Để phân tích các modulo RSA (trong đó n=pq, p và q là các số nguyên tố có cùng kích thớc), sàng bậc hai là một thuật toán thành công nhất hiện nay. Sau đây là một số kết quả quan trọng. Vào năm 1983, thuật toán sàng bậc hai đà phân tích thành công một số có 69... x j 2 mod n có thể phân tích hoàn toàn trên cơ sở b. Một vài phơng pháp có thể thực hiện đợc điều đó. Biện pháp sàng bậc hai do Pomerance đa ra dùng các số nguyên dạng x j =j + ,j=1,2 Tên sàng bậc hai lấy từ thủ tục sàng (không mô tả ở đây) dùng để xác định các x j phân tích đợc trên b. ở đây dĩ nhiên là một sự thoả hiƯp: nÕu B = | B | lµ mét sè lớn thì thích hợp hơn cả là nên phân tích số nguyên... này dẫn đến thời gian thực hiện cỡ ?????????????????????????? Sàng trờng số là thuật toán phân tích mới hơn (từ cuối những năm 80) Thuật toán này cũng phân tích n bằng cách xây dựng một đồng d thức x 2 y 2 (mod n), song nó đợc thực hiện bằng các tính toán trên vành các số đại số. 4.8.3.Các thuật toán phân tích trên thực tế. Thời gian chạy tiệm cận của các thuật toán sàng bậc hai, đơng cong elliptic... B 2 /4 mod n 3. Gọi chơng trình con A(y) để tìm bản giải m· x 4. TÝnh x 1 = x+B/2 5. If x 1 ≡ ± r (mod n) then quit (không thành công) Else UCLN(x 1 +r,n)=p hoặc q (thành công) của một vài giá trĩ sao cho mỗi số nguyên tố trong cơ sở đợc sử dụng một số chẵn lần. Điều này dẫn đến một đồng d thức dạng mong muèn x 2 ≡ y 2 (mod n) mµ ta hy vọng sẽ đa đến việc phân tích n. Ta sẽ minh hoạ bằng... hoặc p hoặc q, và nh vậy phép phân tích n đợc hoàn thành. Ta sẽ tính xác suất thành công của thuật toán này trên tất cả (n- 1) phép chọn ngẫu nhiên r. Với hai thặng d khác không r 1 và r 2 , định nghĩa: r 1 ~ r 2 ⇔ r 1 2 ≡ r 2 2 (mod n) DƠ dµng thÊy r»ng r ~ r víi mäi r, r 1 ~ r 2 cịng cã nghÜa lµ r 2 ~ r 1 ; r 1 ~ r 2 và r 2 ~ r 3 thì r 1 ~ r 3 . Điều đó cho ta thấy rằng quan hệ ~ là... to¸n lý thuyÕt nãi chung. Bressoud [Br 89] là một giáo trình sơ cấp về phép phân tích thừa số và phép kiểm tra tính nguyên tố. Các gi¸o trinh vỊ mËt m· cã chó träng tíi lý thuyết số là các sách của Koblitz [Ko 87] và của Kranakis [Kr 86]. Còn sách của Lenstra và Lenstra [LL 93] là một chuyên thảo tốt về sàng trờng số. Các bài tập 4.7- 4.9 cho một số ví dụ về trục trặc trong giao thức (protocol). . Hình 4.14. Phân tích modulus của rabin với một chơng trình con giải mã cho trớc.Bởi vậy giá trị x sẽ thu đợc ở bớc 3.. rồi mã hoá từng ký tự của bản rõ.a) Hãy mô tả cách Oscar có thể giải mã dễ dàng các bản mã đ-ợc mã nh cách trên.b) Minh hoạ cách tấn công qua việc giải mã