Mật mã hóa Chuong41

25 462 0
Mật mã hóa Chuong41

Đ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

Mật mã hóa

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ẫu nhiên lớn (chẳng hạn có 80 chữ số). Trong thực tế, phơng cách thực hiệ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ác suấ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ác bí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ác suất sai số dới một mức ngỡng cho phép (sau này sẽ thảo luận kỹ hơn mộ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ớn hơ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ác suất sẽ tăng gấp đôi tới khoảng 2/177). Bỡi vậy trên thực tế, hoàn toàn có khả năng tạo đợc các nguyên tố đủ lớn và do đó về mặt thực thể ta có thể thiết lập đ-ợc một hệ mật RSA. Sau đây sẽ tiếp tục xem xé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ỏi cần đợc trả lời có hoặc không. Một thuật toán xác suất là một thuật toán bất kỳ có sử dụng các số ngẫu nhiên (ngợc lại, thuật toán khô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 cho các bài toán quyết định.Định nghĩa 4.1Thuật toán Monte Carlo định hớng có là một thuật toán xác suất cho một bài toán quyết định, trong đó câu trả lời có luôn luôn là đúng còn câu trả lời không có thể là sai. Thuật toán Monte Carlo định hớng không cũng đợc định nghĩa theo cách tơng tự. Chúng ta nói rằng, một thuật toán Monte Carlo định hớng có có xác suất sai bằng nếu với bất kỳ mổt trờng hợp nào câu trả lời là có thì thuật toán có câu trả lời sai không với xác suất không lớn hơn (xác suất này đợc tính trên mọi phép chon ngẫu nhiên, có thể thực hiên bởi thuật toán với một câu vào đã cho).Bài toán quyết định ở đây là bài toán hợp lệ số mô tả ở hình 4.5.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ật toá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ột thuậ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ật toán Monte-Carlo định hớng có cho bài toán hợp số và xác xuất sai 1/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ơn thuật toán Soloway-Strasson (S-S) nhng ta sẽ xét thuật toán S-S trớc vì 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 khi mô 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 Đặ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-1Câu hỏi: x có phải là thặng d bậc hai phép modulo p ? d y2 x (modulo p) có một nghiệm yZp x đợc gọi là thặng d khô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ác thặng d bậc hai.Đị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 hai theo 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ác thặng d bậc hai nhờ sử dụng kỹ thuật bình phơng và nhân cho phép lấy luỹ thừa theo modulo p. Độ phức tạp của thuật toán khoảng O((log p)3). Sau đây tiếp tục đa ra một số định nghĩa từ lý thuyết số:Định nghĩa 4.3.Giả sử p là số nguyên tố lẻ. Với một số nguyên tố bất kỳ a 0, ta định nghĩa ký hiệu Legendre nh sau:0 nếu a 0 (mod p)= 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 theo modulo pTa đã biết là a(p-1)/2 1 (mod p) khi và chỉ khi a là một thặng d bậc hai theo modulo p. Nếu a là bội của p thì rõ ràng a(p-1)/2 0(mod p). 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ép xây dựng một thuật toán hữu hiệu để đánh giá các ký hiệu Legendre nh sauĐịnh Lý 4.9.Giả sử p là một số nguyên tố. Khi đó a(p-1)/2 (mod p).Sau đây là một định nghĩa tổng quát hoá cho ký hiệu Legendre.Định nghĩa 4.4.Giả sử n là một số nguyên dơng lẻ và phân tích theo các luỹ thừa nguyên tố của n là p1e1 . pKek . Giả sử a 0 là một số nguyên. Ký hiệu Jacobi đợc định nghĩa nh sau: Ví dụ 4.7.papapaparaeiK1iipana==99756278 Xét ký hiệu Jacobi . Phân tích luỹ thừa nguyên tố của 9975 là: 9975=3 x 52 x 7 x 19. Bởi vậy ta có: = =(-1)(-1)2(-1)(-1) = -1.Giả sử n > 1 là một số lẻ. Nếu n là một số nguyên tố thì a(n-1)/2 (mod n) với a bất kỳ. Mặt khác nếu n là một hợp số thì đồng d thức trên có thể đúng hoặc không. Nếu phơng trình đó vẫn đúng thì a đợc gọi là số giả nguyên tố Euler theo cơ số n. Ví dụ: 10 là số giả nguyên tố Euler theo cơ số 91 vì : = -1 = 1045 mod 91Tuy nhiên có thể chứng tỏ rằng, với một hợp số lẻ n bất kỳ, sẽ cóp nhiều nhất một nửa các số nguyên a (sao cho 1 a n-1) là các số giả nguyên tố Euler cơ số n (xem các bài tập). Điều đó chứng tỏ rằng, việc kiểm tra tính nguyên tố theo thuật toán Soloway-Strasson đợc nêu ở hình 4.7 là thuật toán Monte-Carlo định hớng cóvới xác xuấ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 đa thứ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 Jacobi mộ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 đã =19627876278562783627899756278219876533229110nana 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. 1. Chọn một số nguyên ngẫu nhiên a, 1 a n-1 2. Nếu a(n-1)/2 (mod n) thì Trả lời n là số nguyên tố Nếu không Trả lời n là một hợp số Rất may là có thể đánh giá ký hiệu Jacobi không cần phải phân tích n nhờ sử dụng một số kết quả của lý thuyết số, trong đó kết quả quan trọng nhất là tính chất 4 (tổng quát hoá luật tơng hỗ bậc hai ).Ta sẽ liệt kê 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)3. Nếu n là một số nguyên lẻ thì Đặc biệt nếu m=2kt với t là một số lẻ thì: nan1mn2mn2=nmnmnmm2121=ntn2nmk 4. Giả sử m và n là các số nguyên lẻ, khi đó: = ví dụ Để minh hoạ cho việc áp dụng các tính chất trên , ta sẽ đánh giá kí hiệu Jacobi nh trong bảng dới đây. Cần chú ý là trong ví dụ 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ính toánkí hiệu Jacobi trong thời gian đa thức. Các phép tính số học dùng ở đây chỉ 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ủa hai số chính là việc xác định số các số 0 tiếp sau. Bởi vậy, độ phức tạp của thuật toán đợc xác định bởi số các phép rút gọn theo modulo cần tiến hành. Không khó khăn lắm có thể chứng tỏ rằng, cần thực hiện nhiều nhất là.n2lại còn hợp trường các trong mn 4) (mod 3nm nếu mn92837411nm=7411928392837411 theo tính chất 4= 74111872 theo tính chất 1. = 7411117474112 theo tính chất 3= 7411117 theo tính chất 2= 1177411 theo tính chất 4= 17740 theo tính chất 1= 117531172 theo tính chất 3= 1175 theo tính chất 2= 5117 theo tính chất 4= 52 theo tính chất 1= -1 theo tính chất 2 O(log n) phép rút gọn theo modulo. Mỗi phép có thể thực hiện trong thời gian O((log n)2). Điều đó chứng tỏ rằng, độ phức tạp là O((log 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ính nguyên tố của nó theo thuật toán Soloway- Strasen. Nếu chạy thuật toán m lần thì câu trả lời n là một số nguyên tố sẽ có mức độ tin cậ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ợp số.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 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ần phải biết prob(a). Giả sử N n 2N. áp dụng định lý về số nguyên tố: các số nguyên tố(lẻ) giửa N và 2N xấp xỉ bằng:2N/ln 2N N/ln N N/ ln N` n/ln nVì có N/2 n/2 số nguyên tố lẻ giửa N và 2N, ta sẽ dùng ớc lợng Prob(a) 1 2/ln nSau đó có thể tính toán nh sau: prob(a| b) = ???? Chú ý rằng trong tính toán trên ? chỉ sự kiện số nguyên lẻ ngẫu nhiê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ụng trong hệ mặt RSA). Khi đó hàm đầu tiên xấp xỉ bằng????. Ta sẽ lập bả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- StrasenM 2-m1 0,500 0,9782 0250, 0,9565 0,312.10-10,73210 0,977.10-30,787.10-20 0,954.10-60,834.10-430 0,930.10-90,815.10-750 0,888.10-150,777.10-13100 0,789.10-300,690.10-28Mặc dù????? tiến tới o khá nhanh theo hàm mũ nhng vẫn không tiến nhanh bằng 2-m. Tuy nhiên, nếu lấy m vào cỡ 50 hoặc 100 thì các xác suất sai đó cùng qui về một lợng rất nhỏ.prob(b) prob(a)a)prob(bprob(b) prob(a)a)prob(b Phần này sẽ kết thúc bằng một thuật toán Monte- Carlo khác cho bài toán hợp số, đó là thuật toán Miller- Rabin (M-R) (đợc coi là một phép kiểm tra giả nguyên tố mạnh). Thuật toán đợc mô tả trong hình 4.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ật toá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ột hợp số nếu n là số nguyên tố, tức nó là một thuật toán định hớng có .Định lý 4.10thuật toán Miller Rabin về các hợp số là thuật toán monte-carlo định hớng có Hình 4.9 Thuật toán kiểm tra tính nguyên tố Miller-rabin với số nguyên lẻ n 1. Viết n-1=2km, trong đó m là một số lẻ 2. Chọn số nguyên ngẫu nhiên a, 1 a (n-1 ) 3. Tính b=am mod n 4. IF b1 (mod n) then Trả lời n là số nguyên tố và quit 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ật toá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 đợc bình phơng trong mỗi phép lặp của vòng For nên ta sẽ kiểm tra các giá trị am , a2m ,,a2k-1m. Vì thuật toán trả lời n là hợp số nên suy ra: A2m -1 (mod n) [...]... x=x1-B/2 để tìm đợc bốn bản rõ có thể Điều này dẫn đến công thức giải sau: d K ( y) = B2 B y 4 2 Ví dụ 4.13 Ta xẽ minh hoạ các thủ tục hoá và giải đối với hệ mật Rabin một ví dụ nhỏ Giả sử n=77=7ì11 và B=9 Khi đó hàm hoá là eK(y)=x2+9x mod 77 và hàm giải là d K ( y ) = 1 + y 43 mod 77 Giả sử Bob muốn giải bản y=22 Điều cần thiết trớc tiên là tìm các căn bậc hai của 23 theo modulo... 4.7 Hệ MậT RABIN Trong phần này sẽ mô tả hệ ma trận Rabin Đây là hệ mật có độ an toàn cao về mặt tính toán chống lại đợc cách tấn công bản rõ lựa chọn và không có khả năng phân tích đợc n=pq(hệ đợc trình bày trong hình 4.13) Chúng ta sẽ chỉ ra rằng, hàm hoá ek không phải là một đơn ánh, vì thế phép giải không thể thực hiện đợc một cách xác định Thực tế có 4 bản rõ có thể ứng với một bản bất... Bởi vậy thá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ệc phân tích n.Sau đây là một ví dụ dụ minh hoạ : Ví dụ 4.9 Giả sử thám đả biết rằng n=84773093 và (n)= 4754668 Thông tin này sẽ dẫn tới phơng trình: P2-18426p+84773093=0 Giải phơng trình này thu đợc hai nghiệm 9539 và 8887.Đây là hai thừa số của n 4.6.1 Số mũ giải Bây giờ... bản giõi có thể là : 10- 43 mod 77=44 67- 43 mod 77=24 32- 43 mod 77=66 45- 43 mod 77= 2 Có thể kiểm tra lại rằng, mỗi một bản rõ này đều đợc hoá thành một bản 22 Bây giờ chúng ta xẽ thảo luận về độ mật của hệ Rabin Ta xẽ chứng minh rằng một thuật toán giải giả định A có thể đợc dùng nh một chơng trình con trong một thuật toán Las Vegas để phân tích modulo n với xác suất tối thiểu bằng 1/2 Thuật... phân (đợc làm trong các bớc 7-11) Dới đây là một ví dụ nhỏ để minh hoạ Ví dụ 4.12 Giả sử n=1457, b=779 và ta có bản y=772 eK(2) đợc tính bằng 946 Giả giử rằng (sử dụng thuật toán giả định đối với half(y)) ta nhận đợc các giá trị yi sau theo bớc 3 thuật toán: Hình 4.11.Giả bản RSA với một thuật toán giả định tính half(y) cho trớc Ký hiệu k=log2 n 2 For i=0 to k do 3 yi =half(y) 4 y=(y* eK(2))... chúng ta sẽ chứng minh một kết quả rất thú vị là một thuật toán bất kỳ để tính số mũ giải a đều có thể đợc dùng nh một chơng trình con (hay một điều kiện )trong thuật toán xác suất phân tích n Bởi vậy việc tính a sẽ không dễ hơn việc phân tích n.Tuy nhiên, có một điều không ngoài quy luật là ta vẫn có thể phá hệ mật 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ằng... phép nhân 2-1và 4-1 theo modulo n ) Hình 4.13 Hệ mật Rabin Giả sử n là tích của hai số nguyên tố phân biệt p và q, p.q 3 (mod 4) Giả sử p =C=Zn và ta xác định K={(n , p , q , B): 0 B n-1} Với K = (n , p , q , B) ta định nghĩa: ek(x) = x( x+B) mod n và d K ( y) = B2 B +y 4 2 các giá trị n và B đợc công khai trong khi p và q đợc giữ kín Bốn bản rõ hoá thành eK(x) là x, -x B, w(x+B/2) và -w(x+B/2),... Bob không có cách nào để xác định bản nào trong bốn bản rõ có thể này là bản rõ đúng, trừ phi bản rõ có đủ độ d để loại bỏ ba trong bốn bản rõ đó Bây giờ ta xem xet bài toán giải theo quan điểm của Bob Anh ta đã có bản y và muốn xác định x sao cho: x2+ bx y(mod n) Đây là một phơng trình bậc hai theo giá trị x cha biết Ta có thể loại bỏ số hạng tuyến tính bằng phép thế x1=x+B/2 (Hay x = x1- B/2)... (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àm chơng trình con) để phân tích n bằng cách tìm một căn bậc hai không tầm thờng của 1 modulo n (A thực hiện tính số mũ giải a theo số mũ b ).Trớc tiên ta sẽ đa ra một ví dụ để minh hoạ cho việc áp dụng thuật toán này ví dụ 4.11 Giả sử n=89855713, b=34986517 và a=82330933 và giá trị ngẫu nhiên w=5.Ta có : ab-1=23.360059073378795... 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à 1/4 4.6 Các phơng pháp tấn công hệ mật rsa Trong phần này ta sẽ lu tâm đến vấn đề:Liệu có các phơng pháp tấn công RSA khác với phơng pháp phân tích n không ? trớc tiên ta thấy rằng thá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ân tích đợc n . 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. số của n.4.6.1 Số mũ giải mãBây giờ chúng ta sẽ chứng minh một kết quả rất thú vị là một thuật toán bất kỳ để tính số mũ giải mã a đều có thể đợc dùng nh

Ngày đăng: 10/11/2012, 12:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan