1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiểm tra nguyên tố xác suất

21 658 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểm Tra Nguyên Tố Xác Suất
Trường học Trường Đại Học
Thể loại bài viết
Thành phố Hà Nội
Định dạng
Số trang 21
Dung lượng 221,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kiểm tra nguyên tố xác suất

Trang 1

Kiể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 2

Cầ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 yZp 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, xy2(mod p) Theo hệ quả 4.6, nếu p là

số nguyên tố thì xp-11 (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)/21 (mod p) Cho p là một phần tửnguyên thuỷ theo modulo p Khi đó xbi (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-11(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 4

Sau đâ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 6

4 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 7

n)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 8

Chú ý 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 9

5 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 10

Trong 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 11

Nhâ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 X21(mod q) cũng có hai nghiệm làX=1 mod q

Vì X2 1 (mod n) khi và chỉ khi X21 (mod p) và X21 (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ệX1 (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), X1 (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 12

biế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=2sr0 (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

Ngày đăng: 22/08/2012, 11:29

HÌNH ẢNH LIÊN QUAN

Hình 4.8. Các xác suất sai đối với phép kiểm tra Solovay- Strasen - Kiểm tra nguyên tố xác suất
Hình 4.8. Các xác suất sai đối với phép kiểm tra Solovay- Strasen (Trang 8)
Hình 4.10 Thuật toán phân tích thừa số (cho trớc số mũ giải mã a). - Kiểm tra nguyên tố xác suất
Hình 4.10 Thuật toán phân tích thừa số (cho trớc số mũ giải mã a) (Trang 12)
Hình 4.12. Phép tìm kiếm nhị phân để giải mã RSA. - Kiểm tra nguyên tố xác suất
Hình 4.12. Phép tìm kiếm nhị phân để giải mã RSA (Trang 17)
Hình 4.13. Hệ mật Rabin - Kiểm tra nguyên tố xác suất
Hình 4.13. Hệ mật Rabin (Trang 18)

TỪ KHÓA LIÊN QUAN

w