Kiểm tra nguyên tố xác suất
Trang 1Kiểm tra tính nguyên tố xác suất
Để thiết lập hệ mật RSA, ta phải tạo ra các số nguyên tố ngẫunhiên lớn (chẳng hạn có 80 chữ số) Trong thực tế, phơng cách thựchiện điều này là: trớc hết phải tạo ra các số ngẩu nhiên lớn, sau đókiểm tra tính nguyên thuỷ của chúng bằng cách dùng thuật toán xácsuất Monte- Carlo thời gian đa thức (chẳng hạn nh thuật toán Miller-Rabin hoặc là thuật toán Solovay- Strasen) Cả hai thuật toán trên đều
đợc trình bày trong phần này Chúng là các thuật toán nhanh (tức làmột số nguyên n đợc kiểm tra trong thời đa thức theo log2n, là số cácbít trong biểu diện nhị phân của n) Tuy nhiên, vẫn có khả năng làthuận toán cho rằng n là số nguyên tố trong khi thực tế n là hợp lệ số.Bởi vậy, bằng cách thay đổi thuật toán nhiều lần, có thể giảm xácsuất sai số dới một mức ngỡng cho phép (sau này sẽ thảo luận kỹ hơnmột chút về vấn đề này)
Một vấn đề quan trọng khác: là cần phải kiểm tra bao nhiêu sốnguyên ngẫu nhiên (với kích thơc xác định)cho tới khi tìm đợc một
số nguyên tố Một kết quả nỗi tiếng trong lý thuyết số (đợc gọi là
định lý số nguyên tố) phát biểu rằng: số các số nguyên tố không lớnhơn N xấp xỉ bằng N/ln N Bởi vậy, nếu p đợc chọn ngẫu nhiên thìxác suất p là một số nguyên tố sẽ vào khoảng 1/ln p Với một mođun
512 bít, ta có 1/ln p 1/77 Điều này có nghĩa là tính trung bình, c
177 số nguyên ngẫu nhiên p với kích thớc tơng ứng sẽ có một số là
số nguyên tố Dĩ nhiên, nếu chĩ hạn chế xét các số nguyên lẻ thì xácsuất sẽ tăng gấp đôi tới khoảng 2/177) Bỡi vậy trên thực tế, hoàntoàn có khả năng tạo đợc các nguyên tố đủ lớn và do đó về mặt thựcthể ta có thể thiết lập đợc một hệ mật RSA Sau đây sẽ tiếp tục xemxét điều này đợc thực hiên nh thế nào
Một bài toán quyết định là một bài toán toán trong đó một câu hỏicần đợc trả lời “có” hoặc “không” Một thuật toán xác suất là mộtthuật toán bất kỳ có sử dụng các số ngẫu nhiên (ngợc lại, thuật toánkhông sử dụng các số ngẫu nhiên sẽ đợc gọi là một thuật toán tất
định) Các định nghĩa sau có liên quan tới các thuật toán xác suất chocác bài toán quyết định
Bài toán quyết định ở đây là bài toán hợp lệ số mô tả ở hình4.5
Trang 2Cần chú ý rằng một thuật toán quyết định chỉ có câu trả lời “có” hoặc
“không” đặc biệt trong bài toán hợp lệ số là ta không yêu cầu thuậttoán tính tích thừa số khi n là hợp lệ số
Trớc tiên ta sẽ mô tả thuật toán Soloway- Strasson Đây là mộtthuật toán Monte- Carlo định hớng “có” cho bài toán hợp số có Trớc tiên ta sẽ mô tả thuật toán Soloway- Strasson Đây là một thuậttoán Monte-Carlo định hớng “có” cho bài toán hợp số và xác xuất sai1/2 Bởi vậy, nếu thuật toán trả lời “có” thì n là hợp số; ngợc lại nếu n
là hợp số thì thuật toán trả lời “có” với xác xuất tối thiểu 1/2
Hình 4.5 Bài toán hợp số
Hình 4.6 Bài toán về các thặng d bậc hai
Mặc dù thuật toán Miller-Rabin (ta sẽ xét sau) nhanh hơnthuật toán Soloway-Strasson (S-S) nhng ta sẽ xét thuật toán S-S trớcvì nó dễ hiểu hơn về khái niệm, đồng thời lại liên quan tới một số vấn
đề của lý thuyết số (mà ta sẽ còn dùng trong các chơng trình sau) Ta
sẽ xây dựng một số nền tảng sâu sắc hơn trong lý thuyết số trớc khimô tả thuật toán
Định nghĩa 4.2
Giả sử p là một số nguyên tố lẻ và x là một số nguyên, 1 x
p-1 x đợc gọi là thặng d bậc hai theo modulo p nếu phơng trình
đồng d y2 x (modulo p) có một nghiệm yZp x đợc gọi là thặng dkhông bậc hai theo modulo p nếu x ??? 0 (mod p) và x không phải làthặng d bậc hai theo modulo p
Ví dụ 4.6
Các thặng d bậc hai theo modulo 11 là 1,3,4,5 và 9 Cần để ý rằng,(1)2=1, (5)2=3, (2)2=4, (4)2=5, (3)2=9 (ở đây tất cả các phép
số học đều thực hiện trong Z11)
Bài toán quyết định thặng d bậc hai đợc trình bày trên hình 4.6
sẽ đợc thấy một cách tơnngf minh nh sau:
Trớc hết, ta sẽ chứng minh một kết quả- tiêu chuẩn Euler –
tạo nên thuật toán tất định theo thời gian đa thức cho bài toán về cácthặng d bậc hai
Đặc trng của bài toán: một số nguyên dơng n 2
Câu hỏi: n có phải là hợp số không ?
Đặc trng của bài toán: cho p là một số nguyên tố lẻ và một
số nguyên x sao cho 0 x p-1
Câu hỏi: x có phải là thặng d bậc hai phép modulo p ?
Trang 3Định lý 4.8 (Tiêu chuẩn Euler)
Giả sử p là một số nguyên tố, khi đó x là một thặng d bậc haitheo modulo p khi và chỉ khi:
x(p-1)/2 1 (mod p)Chứng minh:
Trớc hết giả sử rằng, xy2(mod p) Theo hệ quả 4.6, nếu p là
số nguyên tố thì xp-11 (mod p) với mọi x 0 (mod p) Bởi vậy ta có:
x(p-1)/2 (y2)(p-1)/2 (mod p)
yp-1(mod p)
1 (mod p)Ngợc lại, giả sử rằng x(p-1)/21 (mod p) Cho p là một phần tửnguyên thuỷ theo modulo p Khi đó xbi (mod p) với giá trị i nào đó
Ta có
x(p-1)/2 (bi)(p-1)/2 (mod p)
bi(p-1)/2(mod p) Vì p có bậc bằng p-1 nên p-1 phải là ớc của i(p-1)/2 Bởi vậy i là sốchẵn và nh vậy căn bậc hai của x là bi/2.
Định lý 4.8 sẽ dẫn tới một thuật toán thời gian đa thức cho cácthặng d bậc hai nhờ sử dụng kỹ thuật “bình phơng và nhân” cho phéplấy luỹ thừa theo modulo p Độ phức tạp của thuật toán khoảngO((log p)3)
Sau đây tiếp tục đa ra một số định nghĩa từ lý thuyết số:
= 1 nếu là thăng d bậc hai theo modulo p
-1 nếu là thăng d không bậc hai theomodulo p
Ta đã biết là a(p-1)/2 1 (mod p) khi và chỉ khi a là một thặng dbậc hai theo modulo p Nếu a là bội của p thì rõ ràng a(p-1)/2 0(modp) Cuối cùng, nếu a là một thặng d không bậc hai theo modulo p thì
a(p-1) -1 (mod p) vì ap-11(mod p) Bởi vậy, ta có kết quả cho phépxây dựng một thuật toán hữu hiệu để đánh giá các ký hiệu Legendre
Trang 4Sau đây là một định nghĩa tổng quát hoá cho ký hiệuLegendre.
ei K
1
i pi
a n
6278 5
6278 3
6278 9975
6 5
3 3
Trang 5đợc nêu ở hình 4.7 là thuật toán Monte-Carlo định hớng “có”với xácxuất sai tối đa là 1/2
Đến đây vẫn cha xác định rõ thuật toán ttrên có theo thời gian đathức hay không
Ta đã biết cách đánh giá a(n-1)/2 (mod n) trong thời gian đa thức O((log n)3), tuy nhiên cần phải làm thế nào để tính các ký hiệu Jacobimột cách có hiệu quả Vì ký hiệu Jacobi đợc xác định theo các thừa
số trong phân tích của n Tuy nhiên nếu có thể phân tích đợc n thì ta
đã biết nó có phải là số nguyên tố hay không, bởi vậy cách làm này
sẽ dẫn tới một vòng luẩn quẩn
Hình 4.7 Thuật toán kiểm tra tính nguyên tố Solova-Strassen với sốnguyên lẻ n
Ta sẽ liệt kê mà không chứng minh các tính chất này
1 Nếu n là một số nguyên tố lẻ và m1 m2 (mod n) thì:
=
2 Nếu n là một số nguyên lẻ thì
1 nếu n 1 (mod 8) = -1 nếu n 3 (mod 8)
m n
2 n
Trang 64 Giả sử m và n là các số nguyên lẻ, khi đó:
này, ta đã sử dụng liên tiếp các tính chất4, 1,3 ,và 2
Nói chung, bằng cách áp dụng 4 tính chất trên, có thể tínhtoánkí
hiệu Jacobi trong thời gian đa thức Các phép tính số học dùng ở đâychỉ là rút gọn theo modulo và phân tích ra các luỹ thừa của thuật toán
đợc biểu diễn dới dạng nhị phân thì việc phân tích ra các luỹ thừa củahai số chính là việc xác định số các số 0 tiếp sau Bởi vậy, độ phứctạp của thuật toán đợc xác định bởi số các phép rút gọn theo modulocần tiến hành Không khó khăn lắm có thể chứng tỏ rằng, cần thựchiện nhiều nhất là
O(log n) phép rút gọn theo modulo Mỗi phép có thể thực hiện trongthời gian O((log n)2) Điều đó chứng tỏ rằng, độ phức tạp là O((log
tr ờng các trong m n
4) (mod 3 n m nếu m n
2
theo tính chất 1
= -1 theo tính chất 2
Trang 7n)3) là đa thức theo log n Thực ra bằng các phân tích chính xác hơn,
có thể chứng tỏ răng, độ phức tạp chỉ cỡ O((log n)2)
Giả sử ta đã tạo đợc một số ngẫu nhiên n và đã kiểm tra tínhnguyên tố của nó theo thuật toán Soloway- Strasen Nếu chạy thuậttoán m lần thì câu trả lời “ n là một số nguyên tố” sẽ có mức độ tincậy nh thế nào? Quả là liều lĩnh nếu coi răng, xác suất này là 1-2-m.Kết luận này thờng đợc nêu trong các giáo trình và bài báo kĩ thuật,tuy nhiên ta không thể dẫn ra theo các số liệu cho trớc
Cần phải thận trọng hơn khi sự dụng các tính toán xác suất Ta sẽ
định nghĩa các biến ngẫu nhiên sau:
a- Chỉ sự kiện “ số nguyên lẻ n có kích thớc đã định là một hợpsố”
b- Chỉ sự kiện “ thuật toán trả lời n là số nguyên tố m lần liên tiếp
Điều chắc chắn là prob(b a)2-m Tuy nhiên xác suất mà ta thực sựquan tâm là prob(a/b), xác suất này thờng không giống nh prob(b/a)
Có thể tính prob(a/b) bằng định lý Bayes (định lý2.1) Trớc hết cầnphải biết prob(a) Giả sử N n 2N áp dụng định lý về số nguyêntố: các số nguyên tố(lẻ) giửa N và 2N xấp xỉ bằng:
prob(b
) a )prob(
a prob(b )prob(a)
a prob(b
prob(a) a) prob(b
) a )prob(
a prob(b )prob(a)
a prob(b
prob(a) a) prob(b
Trang 8Chú ý rằng trong tính toán trên ? chỉ sự kiện “số nguyên lẻ ngẫunhiên n là một số nguyên tố”.
Khá thú vị nếu so sánh hai hàm sau của m
????/
Giả sự n 2256 e177 (đây là kích thớc của các số nguyên tố sự dụngtrong hệ mặt RSA) Khi đó hàm đầu tiên xấp xỉ bằng???? Ta sẽ lậpbảng cho hai hàm ứng với một số giá trị của m (xem hình4.8)
Hình 4.8 Các xác suất sai đối với phép kiểm tra Solovay- Strasen
Phần này sẽ kết thúc bằng một thuật toán Monte- Carlo khác chobài toán hợp số, đó là thuật toán Miller- Rabin (M-R) (đợc coi là mộtphép kiểm tra giả nguyên tố mạnh) Thuật toán đợc mô tả trong hình4.9 Đây lá một thuật toán với thời gian đa thức: độ phức tạp của nó
cỡ O((log n)3) tơng tự nh thuật toán S-S Thực ra trong thức tế thuậttoán M-R thực hiện tốt hơn thuật toán S-S
Bây giờ chúng ta sẽ chỉ ra rằng thuật toán này không thể lời “n là mộthợp số
” nếu n là số nguyên tố, tức nó là một thuật toán định hớng “có”
Trang 95 For I=0 to k-1 do
6 IF b-1 (mod n) then Trả lời “n là số nguyên tố “ và quit Else b=b2 mod n
7.Trả lời “ n là hợp số “
Chứng minh:
Ta sẽ chứng minh bằng cách giả sử thuật toán trả lời “ n làhợp số” với số nguyên tố n nào đó và nhân đợc mâu thuẫt Vì thuậttoán trả lời “ nlà hợ số “ nên chắc chắn là am 1(mod n) Bây giờxét dãy các giá trị b đợc kiểm tra trong bớc 2 của thuật toán Vì b đợcbình phơng trong mỗi phép lặp của vòng For nên ta sẽ kiểm tra cácgiá trị am , a2m ,,a2k-1m Vì thuật toán trả lời “n là hợp số” nên suy ra:
điều này là mâu thuẫn, bởi vậy trong trờng hợp này thuật toán phải
có câu trả lời “n là số nguyên tố”.
Còn một vấn đề cha cha đợc xem xét là xác xuất sai của thuậttoán M-R Mặc dù không chứng minh ở đây nhng có thể chứng tỏ đ-
ợc rằng xác xuất này nhiều nhất là ẳ
4.6 Các phơng pháp tấn công hệ mật rsa
Trang 10Trong phần này ta sẽ lu tâm đến vấn đề:Liệu có các phơngpháp tấn công RSA khác với phơng pháp phân tích n không ? trớctiên ta thấy rằng thám mã chỉ cần tính đợc (n) là đủ Nếu đã biết n
và (n) và n là tích của 2 số nguyên tố p và q thì có thể dễ dàng phântích đợc n bằng cách giải 2 phơng trình sau để tìm hai số p và q chabiết:
n=pq
(n)=(p-1)(q-1)
Nếu thay q=n/p và phơng trình thứ 2 thì ta sẽ thu đợc phơng trình bậc
2 của biến cha biết p :
P2-(n-(n) + 1)p + n=0
Hai nghiệmncủa phơng trình này là p và q là các nhân tữ của n.Bởi vậy thám mã biết đợc (n) thì anh ta có thể phân tích đợc n vàphá đợc hệ mật.Nói cách khác, việc tính (n) không dễ hơn việcphân tích n.Sau đây là một ví dụ dụ minh hoạ :
Ví dụ 4.9
Giả sử thám mã đả biết rằng n=84773093 và (n)= 4754668.Thông tin này sẽ dẫn tới phơng trình:
mà không cần tính a
Kết quả này có ý nghĩa nhiều hơn về mặt lý thuyết Nó cho thấy rằngnếu a bị lộ thì giá trị m cũng không còn khó phân tích nữa.Nếu điềunày xẩy ra thì việc Bob chọn một số mũ mới cũng chẳng có ý nghĩa;
Điều cần thiết là Bob phải chọn lại n
Thuật toán mà ta sẽ mô tả là một thuật toán xác suất kiểu lasvegas.Sau đây là định nghĩa của kiểu thuật toán này
Định nghĩa 4.5
Giả sử 0 1 là một số thực.Thuật toán las vegas là mộtthuật toán xác suất cao cho với một trờng hợp bất kỳ của bài toán I,thuật toán có thể không cho kết quả với một xác suất nào đó(chẳng hạn thuật toán có thể kết thúc với thông báo “ không trảlời”).Tuy nhiên, nếu thuật toán cho lời giải thì lời giải này là đúng
Trang 11Nhân xét:Thuật toán las vegas có thể không cho câu trả lời
nh-ng một câu trả lời bất kỳ mà thuật toán cho là đều là câu tra lời
đúng.Ngợc lại, thuật toán monte-carlo luôn luôn cho câu trả lời nhngcâu trà lời này có thể là sai
Nếu ta có một thuật toán las vegas để giải một bài toán thì đơngiản ta chỉ chạy lặp đi lặp lại thuật toán này cho tới khi nó tìm ra mộtcâu trả lời.Xác suất để thuật toán không trả lời sau m lần liên tiếp là
m.Số lần chạy trung bình để thu đợc câu tra lời thực tế là 1/ (Xemcác bài tập )
Giả sử A là một thuật toán giả định tính số mũ giải mã a từ b Ta
sẽ mô tả một thuật toán las vegas dùng A nh một chơng trình giả
định (oracle) con.Thuật toán sẻ phân tích n với xác suất tối thiểu là1/2.Bởi vậy nếu thuật toán chạy m lần thì n sẽ đợc phân tích với xácsuất tối thiểu là 1-1/2m
Thuật toán đợc xây dựng trên cơ sở một số nguyên tố nhất
định liên quan tới các căn bậc 2 của một theo modulo n, trong đón=pq là tích của hai số nguyên tố lẻ phân biệt ta biết rằng phơng trình
đồng d X2 1( mod p) có hai nghiệm theo modulo p là X=1 mod p.Tơng tự, phơng trình đồng d X21(mod q) cũng có hai nghiệm làX=1 mod q
Vì X2 1 (mod n) khi và chỉ khi X21 (mod p) và X21 (mod q) nênsuy ra X2 1 (mod n) khi và chỉ khi X=1 mod p và X=1 modq.Bởi vậy có 4 căn bậc 2 của 1 theo modulo n và các căn này có thểtìm đợc thông qua định lý phần d china.Hai trong các nghiệm này làX=1 mod n; chúng đợc gọi là các căn bậc hai tầm thờng và là cácgiá trị đối của nhau theo modulo n
Sau đây là một ví dụ dụ nhỏ để minh hoạ :
Ví dụ 4.10
Giả sử n=403=13 11.Bốn căn bậc hai của một theo modulo
403 là 1,92,311 và 402.Căn bậc hai 92 nhận đợc bằng cách giải hệX1 (mod 13) , X-1 (mod 31) theo định lý phần d china.Nếu tìm
đợc không tầm thờng này, nghiệm không tầm thờng kia phải là 92=311.Đó là nghiệm của hệ X-1(mod 13), X1 (mod 31)
403-Giả sử X là căn bậc hai không tầm thờng của 1 modulo n Khi
đó ta có
n(x-1)(x+1)
nhng n không là ớc của một nhân tử nào ở vế phải Điều đó kéo theoUCLN (X+1,n) = p hoặc q(và tơng tự UCLN(X-1,n)=p hoặc q).Tấtnhiên có thể tính UCLN bằng thuật toán Euclide mà không cần phải
Trang 12biết phân tích nhân tử của n.Bởi vậy, hiểu biết về căn bậc hai khôngtầm thờng của 1 mod n sẽ làm cho việc phân tích n chỉ cần thực hiệntrong thời gian đa thức.
Trong ví dụ dụ 4.10 ở trên, UCLN (93,403) =31 và UCLN(312,403)=13
Trên hình 4.10 trình bày thuật toán (dùng thuật toán giả định A làmchơng trình con) để phân tích n bằng cách tìm một căn bậc hai khôngtầm thờng của 1 modulo n (A thực hiện tính số mũ giải mã a theo số
mũ mã b ).Trớc tiên ta sẽ đa ra một ví dụ để minh hoạ cho việc ápdụng thuật toán này
Đây là một thừa số của n; thừa số kia là n/9103=9871
Bây giờ sẽ tiến hành phân tích thuật toán.Trớc tiên, nhân thấyrằng nếu ta may mắn chọn đợc w là bội của p hoặc q thì có thể ngaylập tức phân tích đợc n.Điều này đợc biểu thị ở bớc 2 Nếu nguyên tốcùng nhau với n thì chúng ta sẽ tính wr , w2r, w4r,…,Bằng cách bình,Bằng cách bìnhphơng liện tiếp cho tới khi
W2r 1 (mod n)
Với giá trị t nào đó.Vì
Ab-1=2sr0 (mod (n))
Hình 4.10 Thuật toán phân tích thừa số (cho trớc số mũ giải mã a)
1 Chọn w ngẫu nhiên sao cho 1 w n-1