Giáo trình Mật mã và ứng dụng - Chương 4: Hệ mật Rsa và vấn đề phân tích thừa số, trình bày các nội dung: giới thiệu về hệ mật khóa công khai, một số vấn đề sâu hơn về lý thuyết số, hệ mật Rsa, thực hiện hệ mật Rsa, kiểm tra tính nguyên tố xác suất, các phương pháp tấn công hệ mật Rsa,... Đây là tài liệu tham khảo dành cho sinh viên Công nghệ thông tin.
Chơng Hệ mật RSA vấn đề phân tích thừa số 4.1 Giới thiệu hệ mật khoá công khai Trong mô hình mật m cổ điển trớc mà đợc nghiên cứu Alice (ngời gửi) Bob (ngời nhận) chọn cách bí mật khoá K Sau dùng K để tạo luật m hoá ekvà luật giải m dk Trong hệ mật dk giống nh ek dễ dàng nhận đợc từ (ví dụ hệ DES trình giải m hoàn toàn tơng tự nh trình m nhng thủ tục khoá ngợc lại) Các hệ mật thuộc loại đợc gọi hệ mật khoá bí mật, để lộ ek làm cho hệ thống an toàn Nhợc điểm hệ mật yêu cầu phải có thông tin trớc khoá K Alice Bob qua kênh an toàn trớc gửi m Trên thực tế điều khó đảm bảo Chẳng hạn Alice Bob cách xa họ liên lạc với th tín điện tử (Email) Trong tình Alice Bob tạo kênh bảo mật với giá phải ý tởng xây dựng hệ mật khoá công khai (hay khoá dùng chung) tìm hệ mật khả tính toán để xác định dkkhi biết ek Nếu thực đợc nh quy tắc m ek đợc công khai cách công bố danh bạ (bởi nên có thuật ngữ hệ mật khoá công khai) Ưu điểm hệ mật khoá công khai chỗ Alice (hoặc ai) gửi tin đ m cho Bob (mà không cần thông tin trớc khoá mật) cách dùng luật m công khai ek Ngời nhận A ngời giải đợc m cách sử dụng luật giải m bÝ mËt dk cđa m×nh Cã thĨ h×nh dung hƯ mật tơng tự nh sau Alice đặt vật vào hộp kim loại khoá lại khoá số Bob để lại Chỉ có Bob ngời mở đợc hộp có biết tổ hợp m khoá số ý tởng hệ mật khoá công khai đ đựoc Diffie Hellman đa vào năm 1976 Còn việc thực hoá Rivesrt, Shamir Adleman đa vào năm 1977, họ đ tạo nên hệ mật tiếng RSA (sẽ đợc nghiên cứu chơng này) Kể từ số hệ đợc công bố, độ mật chúng dựa toán tính toán khác Sau hệ mật khoá công khai quan trọng : + Hệ mật RSA: Độ bảo mật hệ RSA dựa độ khó việc phân tích thừa số nguyên tố số nguyên lớn Hệ đợc mô tả phần 4.3 + HƯ mËt xÕp ba l« Merkle - Hellman: HƯ hệ liên quan dựa tính khó giải toán tổng tập (bài toán toán NP đầy đủ lớp lớn toán thuật giải đợc biết thời gian đa thức) Tuy nhiên tất hệ mật xếp ba lô khác đ bị chứng tỏ không mật (ngoại trừ hệ mật Chor Rivest đợc nêu dới đây) Hệ mật đợc xét chơng + Hệ mật McEliece: Hệ dựa lý thuyết m đại số đợc coi an toàn Hệ mật McEliece dựa toán giải m cho m tuyến tính (cũng toán NP đầy đủ) Hệ mật McEliece đợc trình bày chơng + HƯ mËt Elgamal: HƯ mËt Elgamal dùa trªn tÝnh khã giải toán logarithm rời rạc trờng hữu hạn (xem chơng 5) + Hệ mật Chor - Rivest: Hệ mật Chor - Rivest đợc xem nh loại hệ mật xếp ba lô Tuy nhiên đợc coi an toàn + Hệ mật đờng cong Elliptic Các hệ mật biến tớng cảu hệ mật khác (chẳng hạn nh hệ mật Elgamal) , chúng làm việc đờng cong Elliptic trờng hữu hạn Hệ mật đảm bảo độ mật với khoá số nhỏ hệ mật khoá công khai khác (xem chơng 5) Một ý quan trọng hệ mật khoá công khai không đảm bảo đợc độ mật tuyệt đối (an toàn vô điều kiện) Sở dĩ nh đối phơng nghiên cứu m y m lần lợt rõ luật m công khai ek tìm đợc rõ x đảm bảo y = ek (x) Bản rõ kết giải m y Bởi ta nghiên cứu độ mật mặt tính toán hệ mật Một khái niệm có ích nghiên cứu hệ mật khoá công khai khái niệm hàm cửa sập chiều Ta định nghĩa khái niệm cách không hình thức Hàm m khoá công khai ek Bob phải hàm dễ tính toán Song việc tìm hàm ngợc (hàm giải m ) phải khó khăn (đối với Bob) Đặc tính dễ tính toán nhng khó tính toán hàm ngợc thờng đợc gọi đặc tính chiều Bởi điều kiện cân thiết ek phải hàm chiều Các hàm chiều đóng vai trò quan trọng mật m học: chúng quan hệ mật khoá công khai nhiều lĩnh vực khác Đáng tiếc có rts nhiều hàm đợc coi hàm chiều nhng không tồn hàm chứng minh đợc hàm chiều Sau ví dụ hàm đợc coi hàm chiều Giả sử n tích hai số nguyên tố lớn p q, giả sử b số nguyên dơng Khi ta xác định ánh xạ f : Zn Zn lµ f(x) = xb mod n (víi b vµ n đ đợc chọn thích hợp hàm m RSA, sau nói nhiều nó) Để xây dựng hệ mật khoá công khai việc tìm đợc hàm chiều cha đủ Ta không muốn ek hàm chiều Bob phải có khả giải m tin nhận đợc cách hiệu Điều cần thiết Bob phải có cửa sập chứa thông tin bí mật cho phép dễ dàng tìm hàm ngợc ek Nh Bob giải m cách hữu hiệu có hiểu biết tuyệt mật K Bởi hàm đợc gọi cửa sập chiều hàm chiều trở nên dễ tính ngợc biết cửa sập mhất định Ta xét cách tìm cửa sập hàm f nêu phần 4.3 Các tìm dÉn ®Õn hƯ mËt RSA 4.2 mét sè vÊn đề sâu lý thuyết số Trớc mô tả hệ mật RSA làm việc cần phải xem xét số yếu tố liên quan đến lý thuyết số số học modulo Hai kết cần biết thuật toán Euclide định lý phần d China 4.2.1 Thuật toán Euclide Trong chơng đ xét Zn vành với số nguyên dơng n Ta đ chứng tỏ phần tử b Zn có phần tử nghịch đảo (phần tử ngợc phép nhân) CLN(b,n) = số nguyên dơng nhỏ n nguyên tè cïng víi n b»ng φ (n) TËp c¸c thặng d theo modulo n nguyên tố với n đợc ký hiệu Zn* Không khó khăn thấy Zn* tạo nên nhóm Abel phép nhân Ta biết rằng, phép nhân theo modulo n giao hoán kết hợp phần tử đơn vị Một phần tử Zn*đều có nghịch đảo bội (cũng nằm Zn*) Cuối Zn* đóng phép nhân xy nguyên tố với n x y nguyên tố với n (H y chứng minh điều này!) Cho tới ta biết phần tử b Zn* có nghịch đảo b-1 song việc tính cha nói đến Một thuật toán nh đợc gọi thuật toán Euclide mở rộng Trớc tiên ta mô tả thuật toán Euclide, thông thờng thuật toán đợc dùng để tính ớc số chung lớn (CLN) hai số nguyên dơng r0 r1 víi r0 > r1.Tht to¸n Euclide bao gåm viƯc thùc hiƯn c¸c phÐp to¸n nh− sau: r0 = q1 r1 +r2 r1 = q2 r2 +r3 rm -2 = qm -1 rm -1 +rm rm -1 = qm rm < r2 < r1 < r3 < r2 < rm -1 < rm Khi ®ã dƠ dàng chứng tỏ đợc CLN(r0 , r1 ) = −CLN(r1 , r2 ) = −CLN(rm-1 , rm ) = rm Bëi vËy −CLN(r0 , r1 ) = rm Vì thuật toán Euclide tính CLN nên áp dụng để xác định xem liệu số nguyên dơng b < n có nghịch đảo theo modulo n không cách bắt đầu với r0 = n r1 = b Tuy nhiên thuật toán không cho phép tính giá trị phần tử nghịch đảo (nếu tồn tại) Bây giả sử ®Þnh nghÜa mét d y sè t0 , t1 , ,tm theo công thức truy toán sau (trong giá trị qj đ đợc xác định trên) t0 = t1 = tj = tj-2- qj-1 tj-1 mod r0 nÕu j ≥ Ta cã kÕt quan trọng sau Định lý 4.1 Với j ≤ m, ta cã rj ≡ tjr1 (mod r0), giá trị qj rj đợc xác định theo thuật toán Euclide giá trị tj đợc xác định theo công thức truy toán Chứng minh: Ta chứng minh cách quy nạp theo j Định lý hiển nhiên với j = j = Giả sử định lý với j = i-1 j = i-2, i 2; sau ta chứng tỏ định lý với j = i Theo quy nạp ta có Bây ta tính ri-2 ti-2 r1 (mod r0) ri-1 ≡ ti-1 r1 (mod r0) ri = ri-2 - qi-1 ri-1 ≡ ti-2 r1 - qi-1 ti-1 r1 (mod r0) ≡ (ti-2 - qi-1 ti-1)r1 (mod r0) ≡ ti r1 (mod r0) Bëi vËy theo quy n¹p định lý Hệ rút trực tiếp từ định lý Hệ 4.2: Giả sử CLN (r0,r1) = 1, ®ã tm = r1-1 mod r0 Hìn 2.1 Thuật toán Euclide mở rộng: 10 11 12 13 14 15 16 17 n0 = n b0 = b t0 = t=1 q = n0 /b0 r = n0 - q×b0 While r > temp = t0 -q×t if temp ≥ then temp = temp mod n if temp < then temp = n - ((- temp) mod n) t0 = t t = temp n0 = b b0 = r q = n0 /b0 r = n0 - q×b0 if b0 ≠ then b nghịch đảo theo modulo n -1 else b = t mod n XÐt thÊy d y c¸c sè t0, t1, , tm đợc tính toán thuật toán Euclide đồng thời nh giá trị qj rj Hình 4.1 trình bày thuật toán Euclide mở rộng để tính nghịch đảo b theo modulo n (nếu tồn tại) Trong thuật toán dùng mảng (array) để ghi giá trị qj, rj tj cần nhớ hai giá trị cuối d y điểm thuật toán Trong bớc 10 thuật toán ta đ viết biểu thức cho biến temp theo cách để phép rút gọn theo modulo n đợc thực số dơng (Trớc đ biết việc rút gọn theo modulo số âm dẫn đến kết âm nhiêù ngôn ngữ máy tính; ta muốn kết thúc với kết dơng) b−íc 12 lu«n cã tb ≡ r (mod n) (kÕt đ đợc chứng minh định lý 4.1) Sau ví dụ nhỏ để minh hoạ Ví dụ 4.1 Giả sử ta cần tính 28-1 mod 75 Tht to¸n Euclide më réng thùc hiƯn nh− sau: 75 = × 28 +29 73 × 28 mod 75 = 19 28 = × 19 + × 28 mod 75 = 19 = × + 67 × 28 mod 75 = 9=9×1 b−íc b−íc 12 b−íc 16 b−íc 12 b−íc 16 b−íc 12 b−íc 16 V× thÕ 28-1 mod 75 = 67 4.2.2 Định lý phần d China Định lý thực phơng pháp giải hệ phơng trình đồng d Giả sử m1, , mr số nguyên tố đôi (tức CLN(mi,mj)=1 ji) Giả sử a1, ., ar số nguyên xét hệ phơng trình đồng d sau: x a1 (mod m1) x ≡ a2 (mod m2) x ≡ ar (mod mr) Định lý phần d China khẳng định hƯ nµy cã nghiƯm nhÊt theo modulo M = m1ìm2ì ìmr Ta chứng minh kết phần mô tả thuật toán hữu hiệu để giải hệ đồng d thức dạng Để thuận tiện, xét hàm : ZM nghĩa nh sau: Zm1ì ìZmr Hàm đợc định π(x) = (x mod m1, , x mod mr ) VÝ dơ 4.2 Gi¶ sư r = 2, m1 = vµ m2 = 3, bëi vËy M = 15 Khi hàm có giá trị sau π(0) = (0,0) π(3) = (3,0) π(6) = (1,0) π(9) = (4,0) π(12) =(2,0) π(1) = (1,1) π(4) = (4,1) π(7) = (2,1) π(10) =(0,1) π(13) =(3,1) π(2) = (2,2) π(5) = (0,2) π(8) = (3,2) π(11) =(1,2) π(14) =(4,2) Việc chứng minh định lý phần d China tơng đơng với việc chứng minh hàm song ánh Điều dễ dàng thấy đợc ë vÝ dơ 4.2 Trong thùc tÕ cã thĨ ®−a công thức tờng minh tổng quát cho hàm ngợc -1 Với i r, định nghĩa: Mi = M/mi Khi đó, dễ dàng thấy CLN(Mi,mi) = víi ≤ i ≤ r TiÕp theo, với i r, định nghĩa yi = Mi-1 mod mi (phần tử nghịch đảo tồn CLN(Mi,mi) = tìm đợc thuật toán Euclide) Cần để ý Miyi (mod mi) víi ≤ i ≤ r B©y giê ta định nghĩa hàm : Zm1 ì × Zmr ( ) r ρ a , a r = ∑ a M y mod i i i=1 i ZM nh− sau M Ta sÏ chøng tá r»ng = -1 , tức cho công thức tờng minh để giải hệ đồng d thức ban ®Çu KÝ hiƯu X = ρ(a1, ,ar) cho j r Xét số hạng aiMiyi tỉng trªn rót gän theo modulo mj NÕu i = j th× aiMiyi ≡ (mod mi) Miyi (mod mi) Mặt khác, i ≠ j th× aiMiyi ≡ 0(mod mj) mi Mi trờng hợp Bởi có X ≡ ∑ a iM ≡ a i (mod i y i (mod m j m j ) ) Do ®iỊu j, j r, nên X nghiệm hệ phơng trình đồng d Tới lúc cần phải chứng tỏ nghiệm X theo modulo M điều đợc chứng tỏ cách tính toán đơn giản hàm từ miền có lực lợng M sang mét miỊn cã lùc l−ỵng M Ta võa chứng tỏ toàn ánh Bởi phải đơn ánh (tức phép tơng ứng - 1) miền xác định miền giá trị có lực lợng Điều kéo theo song ánh -1 = p Cũng cần ý -1 hàm tun tÝnh cđa c¸c biÕn a1, ., ar Sau ví dụ lớn để minh hoạ VÝ dơ 4.3 Gi¶ sư r = 3, m1 = 7, m2 = 11 m3 = 13 Khi M = 1001 Ta tÝnh M1 = 143, M2 = 91 M3 = 77 sau tính y1 = 5, y2 = vµ y3 = 12 Khi hàm -1: Z7ìZ11ìZ13 Z1001 có dạng: -1(a1,a2,a3) = 715a1 +364a2 + 924a3 mod 1001 VÝ dô, nÕu x ≡ (mod 7), x ≡ (mod 11) vµ x 10 (mod 13) công thức cho ta biÕt r»ng x = 715 × + 364 × + 924 × 10 mod 1001 = 13907 mod 1001 = 894 mod 1001 Điều kiểm tra đợc cách rút gọn 894 theo modulo 7, 11 13 Để tham khảo sau này, ta ghi kết phần dới dạng định lý Định lý 4.3 (Định lý phần d China) Giả sử m1, ,mr số nguyên dơng nguyên tố đôi cho a1, , ar số nguyên Khi đó, hệ r đồng d thức x (mod mi) (1 ≤ i ≤ r ) sÏ cã mét nghiƯm nhÊt theo modulo M = m1× ì mr đợc cho theo công thức r x = ∑ a i M i y i mod M Mi = M/mi yi = i =1 Mi-1 mod mi, víi ≤ i ≤ r 4.2.3 Các kiến thức cần thiết khác Sau nhắc tới kết khác lý thuyết nhóm sơ cấp: định lý Lagrange Định lý có liên quan đến cách đề cập hệ mật RSA Với nhóm nhân hữu hạn G, ta định nghĩa cấp phần tử g G số nguyên dơng m bé cho gm = Ta có kết sau (không chứng minh ) Định lý 4.4 (Lagrange ) Giả sử G nhóm cấp n g G Khi cấp g ớc n Với mục đích đa ra, hƯ qu¶ sau rÊt quan träng HƯ qu¶ 4.5 NÕu b ∈ Zn* th× bφ(n) ≡ (mod n) Chứng minh: Zn* nhóm nhân cấp (n) Hệ 4.6 (Ferma) Giả sử p số nguyên tố b ∈ Zp Khi ®ã bp ≡ b (mod p) Chứng minh: Nếu p số nguyên tố (n) = p-1 Bởi vậy, với b0(mod p), kết đợc rút từ hệ 4.5 Với b (mod p), kết 0p ≡ (mod 0) Cho tíi giê ta ® biÕt rằng, p số nguyên tố Zp* nhóm cấp p-1 phần tử Zp* sÏ cã bËc lµ −íc cđa p-1 Tuy nhiên, p số nguyên tố nhóm Zp* nhóm cyclic: tồn phần tử Zp* trị khả Ta kết luận xác suất thành công thuật toán 1/2 Điều thú vị hệ mật rabin an toàn phơng pháp công rõ chọn lọc, mhmg hệ lại hoàn toàn không an toànđối với phơng pháp công bảm m chọn lọc Thuật toán hình 4.14, phần dùng để chứng minh an toàn phép công rõ chọn lọc đợc dùng để phá hệ mật Rabin thực công m chọn lọc! Trong phơng pháp công m chọn lọc, chơng trình A đợc thay thuật toán giải m Bob 4.8 Các thuật toán phân tích thừa số Đ có khối lợng khổng lồ tìa liệu thuật toán phân tích thừa số việc nghiên cứu kỹ lỡng đòi hỏi phải có sách dày sách cố gắng đa nhìn khái quát bao gồm việc thảo luận sơ lợc thuật toán phân tichs thừa số tốt thời cách sư dơng chóng thùc tÕ Ba tht to¸n hiƯu số thật lớn sàng bậc hai, thuật toán đờng cong elliptic sàng trờng số Các thuật toán tiếng khác (những thuật toán toán có trớc) bao gồm phơng pháp thuật toán p-1 cđa Pollard, tht to¸n p+1 cđa Williams, tht to¸n liên phân số dĩ nhiên phép chia thử Trong toàn phần này, cỏìng số nguyên n cần phân tích thừa số sè lỴ PhÐp chia thư bao gåm viƯc chia n cho số nguyên lẻ [ n] Nếu n < 1012 phơng pháp phân tích thừa số hợp lý cách hoàn hảo, nhiên với n lớn nói chung ta phải dùng kỹ thuật tinh tế 4.8.1 Phơng pháp p-1 Thuật toán p-1 Pollar (đa vào năm 1947) thí dụ thuật toán đơn giản đơn đợc áp dụng với số nguyên lớn Thuật toán (trình bày hình 4.15) có hai đầu vào: số nguyên lẻ n cần đợc phân tích 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 Đầu vào: n B a=2 For j=2 to B a = aj mod n d = −CLN(a-1,n) if < d < n then d lµ mét thõa sè cđa n (thµnh công) else không tìm đợc thừa số n (không thành công) Giả sử p ớc mhuyên tố n q B , với mũ nguyên tố p(p1) Khi (p-1)B! cuối vòng lặp for (b−íc 2) a ≡ 2B! (mod n) nªn a ≡ 2B! (mod p) pn nên theo định ý Fermat ta cã : 2p-1 ≡ (mod p) V× (p-1) B! nªn a ≡ (mod p) (trong b−íc 3) Bởi bớc p(a-1) pn, pd = CLN(a-1,n) Số nguyên d ớc không tÇm th−êng cđa n (trõ phi a= ë b−íc 3) Sau đ tìm đợc d, ta tiếp tực phân tích d n/d chúng hợp sè VÝ dơ 4.14 Gi¶ sư n = 15770708441 NÕu ¸p dơng tht to¸n p-1 víi B = 180 th× sÏ thÊy r»ng a = 11620221425 ë b−íc 3, d đợc tính 135979 Trên thực tế, phấn tích đầy đủ n thành ớc nguyên tố là: 15770708441 = 135979 ì 115979 Trong trờng hợp này, phép phân tích thành công 135978 gồm thừa số nguyên tố nhỏ: Vì 135978 = × ×131 × 173 nÕu lÊy B ≥ 173 chăn 135978B! nh mong muốn Trong thuật toán có (B-1) luỹ thừa theo modulo, luỹ cần nhiều 2log2B phép nhân modulo dùng thuật toán bình phơng nhân Việc tính ớc chung lớn cã thĨ thùc hiƯn thêi gian O((log n)3) b»ng thuật toán Euclide Bởi vậy, độ phức tạp thuật toán O(B logB (log n)2 +(log n)3) Nếu B O((log n)i) với số nguyên i xác định thuật toán thực thuật toán thời gian đa thức, nhiên với phép chọn B nh vậy, xác suất thành công nhỏ Mặt khác, tăng kích thớc B lên thật lớn (chẳng hạn tới n ) thuật toán thành công nhng không thực nhanh phép chia thử Nh vậy, điểm bất lợi thuật toán yêu cầu n phải có ớc nguyên tố p cho (p-1) thừa số nguyên tố bé Ta 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 Trớc tiên tìm mét sè nguyªn tè lín p1 cho p= 2p1+1 số nguyên tố số nguyên tè lín q1 cho q= 2q1+1 cịng lµ mét số nguyên tố (nhờ dùng thuật toán kiểm tra tính nguyên tố Monte-Carlo nêu phần 4.5) Khi modulo RSA n= pq 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 (đợc Lenstra xây dựng vào năm 1980) thực tế tổng quát hoá phơng pháp p-1 Ta không thảo luận lý thuyết mà nhấn mạnh rằng, thành công phơng pháp đờng cong elliptic tuỳ thuộc vào tình tơng tự : số nguyên gần với p có thừa số nguyên tố bé Trong phơng pháp p1 phụ thuộc vào quan hệ Zp phơng pháp đờng cong elliptic phụ thuộc vào nhóm xác định đờng cong elliptic theo modulo n 4.8.2 Thuật toán Dixon sàng bậc hai Thuật toán Dixon đợc xây dựng ý tởng đơn giản mà ta đ thấy hệ mật Rabin ý tởng là: tìm đợc x y (mod n) cho x2y2 (mod n) CLN(x-y,n) ớc không tầm thờng n Phơng pháp sử dụng sở nhân tử tập B chứa số nguyên tố bé Trớc tiên ta nhận đợc vài số nguyên x cho tất thừa số nguyên tốcủa x2 (mod n) nằm sở B (cách thực điều đợc thảo luận sau) ý tởng thực hiên lấy tích vài giá trĩ cho số nguyên tố sở đợc sử dụng số chẵn lần Điều dẫn đến đồng d thức dạng mong muốn x2 y2 (mod n) mà ta hy vọng đa đến việc phân tích n Ta minh hoạ ví dụ đ đợc dự tính kỹ lỡng Ví dụ 4.15 Giả sử n=15770708441(giá trị n đ dùng ví dụ 4.14) Giả sử b = {2,3,5,7,11,13} XÐt ba ®ång thøc sau: 83409341562 ≡ × (mod n) 120449429442 ≡ × × 13 (mod n) 27737000112 =2 × × 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 biểu thức bên dấu ngặc theo modulo n, ta cã: 95034357852 ≡ 5462 (mod n) Sau tính: CLN(9503435785-546, 15770708441)=115759 Ta thấy 115759 thõa sè cđa n Gi¶ sư B = {p1, pB}là sở nhân tử Giả sử c lớn B chút (chẳng hạn C=B+10) giả sử ta đ có C đồng d thức: xj2 ≡ p1α1j × p2α2j × × pBαBj(mod n) với j C Với j xét véctor : aj = (α1j mod 2, α2j mod 2, , αBj mod 2) ∈ (Z2)B NÕu cã thÓ tìm đợc tập aj cho tổng theo modulo vector (0, ., 0) tích xj tơng ứng sử dụng nhân tử B số chẵn lần Ta minh hoạ cách trở lại ví dụ 4.15 Trong trờng hợp C < B, tìm đợc sù phô thuéc tuyÕn tÝnh VÝ dô 4.15 (tiÕp) Cho 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 Đây lý cho thấy đồng d thức (thiết lập theo tích) phân tích thành công đợc n Nhận thấy rằng, toán t×m mét tËp C vector a1, a2, , aC cho tỉng theo modulo lµ mét vector toàn chứa số toán tìm phụ thuộc tuyến tính (trên Z2) vector nµy Víi C > B, sù phơ thc tun tÝnh định phải tồn ta dễ dàng tìm đợc phơng pháp loại trừ Gaux Lý giải thích lấy C > B+1 bảo đảm để đồng d thức cho trớc tạo đợc phân tích n Khoảng 50% thuật toán cho x y (mod n) Tuy nhiên C > B+1 nhận đợc vài đồng d thức nh (Nảy sinh từ phụ thuộc tuyến tính khác aj) Hy vọng đồng d thức kết dẫn đến việc phân tích n Vấn đề lại phải làm để nhận đợc số nguyên xj mà giá trị xj2 mod n phân tích hoàn toàn sở B Một vài phơng pháp thực đợc điều Biện pháp sàng bậc hai Pomerance đa dùng số nguyên dạng xj=j + [ n] ,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 xj phân tích đợc B dĩ nhiên thoả hiệp: nÕu B = | B | lµ mét sè lín thích hợp nên phân tích số nguyên xj B Tuy nhiên B lớn ta phải gom nhiều đồng d thức trớc tìm đợc quan hệ phụ thuéc Lùa chän tèi −u cho B xÊp xØ b»ng e ln n ln ln n điều dẫn ®Õn thêi gian thùc hiƯn cì O(e (1+O (1) ln n ln ln n ) ) Sµng tr−êng sè lµ thuật toán phân tích (từ cuối năm 80) Thuật toán phân tích n cách xây dựng đồng d thức x2 y2 (mod n), song đợc thực tính toán vành số đại số 4.8.3.Các thuật toán phân tích thực tế Thời gian chạy tiệm cận thuật toán sàng bậc hai, đơng cong elliptic sµng tr−êng sè nh− sau: O(e (1+O (1) Sµng bËc hai Đờng cong elliptic Sàng trờng số ln n ln ln n O(e (1+O (1) ) ) ln p ln ln p O(e (1, 92+O (1) )(ln n ) 1/3 ) ) (ln ln n ) / ) O(1) hàm n, hàm tiÕn tíi n nguyªn tè nhá nhÊt cđa n Trong trờng hợp xấu p p thừa số n , thời gian chạy tiệm cận thuật toán đờng cong elliptic sàng bậc hai nh Tuy nhiên trờng hợp này, phơng pháp sàng bậc hai nói chung trội phơng pháp đờng cong elliptic Phơng pháp đơng cong elliptic hiệu thừa số nguyên tố cđa n cã kÝch th−íc kh¸c Mét sè rÊt lớn đ đợc phân tích phơng pháp đờng cong elliptic tham số Fermat (22048-1) (đợc Brent thực năm 1988) Để phân tích modulo RSA (trong n=pq, p q số nguyên tố cã cïng kÝch th−íc), sµng bËc hai lµ mét tht toán thành công Sau số kết 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 số có 69 chữ số, số thừa số 2251-1 (do Davis, Holdredye Simmons thực hiện) Quá trình tiếp tục năm 80 đến năm 1989 đ phân tích đợc số có tới 106 chữ số theo phơng pháp này(do Lenstra Manasse thực hiện) nhờ phân bố 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 phân tích thừa số th điện tử) Gần hơn, 4/1994 Atkins, Graff, Lenstra Leyland đ phân tích đợc số 129 chữ số (đợc gọi RSA-129) nhờ sử dụng sàng bậc hai (các số RSA-100, RSA-110, ,RSA-500 danh sách modulo RSA đợc công bố internet nh thách đố cho thuật toán phân tích Mỗi số RSA-d số d chữ số, số tích 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 600 nhà nghiên cứu toàn giới Sàng trờng số thuật toán ba thuật toán toán Nó có tiềm lớn thời gian chạy tiệm cận nhanh hơpn hai thuật toán Thuật toán thời kì nghiên cứu, nhiên ngời ta đ dự đoán sàng trờng số phải chứng tỏ nhanh với số có 125-130 chữ số Năm 1990, Lenstra, Manase Pollaid đ dùng sàng trờng số để phân tích (2512 - 1) thành ba số nguyên tố có 7, 49 99 chữ số 4.9 giải tài liệu dẫn ý tởng mật m khoá công khai đ đợc Diffie Hellman nêu vào 1976 Mặc dù [HD 76A] tài liệu đợc trích dẫn nhiều báo Hội nghị [DH 76] thực tế đ xuất sớm chút Hệ mật RSA đợc Rivest, Shamis Adleman [RSA 78] phát minh Hệ mật Rabin đợc mô tả [RA 79]: hệ tơng tự với phép giải m không mập mờ đ đợc Willians tìm [Wi 80] Bạn đọc tham khảo [Di 92] báo tổng quát mặt m khoá công khai Diffie Phép thử Solovay- Stassen lần mô tả [SS 77] Phép thử Miller- Rabin đợc nêu trong[Mi 76] [Ra 80] Thảo luận xác suất sai dựa nhập xét Brassard 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 st sai cđa tht to¸n Miller- Rabin cã thĨ t×m thÊy [DLP 93] Néi dung phần 4.6 dựa quan điểm Salomaa [SA 90, trang 143-154] Phép phân tích n với số mũ giải m cho trớc đợc nêu [DE 84]: kết thông tin riêng bị lộ RSA lấy từ [GMT 82] Nh đ nói trên, đ có nguồn tài liệu thuật toán phân tích Pomerance [Po 90]là tổng quát phếp phân tích Lenstra Lenstra [LL 90] báo cáo thuật toán lý thuyết nói chung Bressoud [Br 89] giáo trình sơ cấp phép phân tích thừa số phép kiểm tra tính nguyên tố Các giáo trinh mật m có trọng tới lý thuyết số sách Koblitz [Ko 87] Kranakis [Kr 86] Còn sách Lenstra Lenstra [LL 93] chuyên thảo tốt sàng trờng số Các tập 4.7- 4.9 cho mét sè vÝ dơ vỊ trơc trỈc giao thøc (protocol) Về vấn đề xem báo hay Moore [Mo 92] Bài tập 4.1 H y dùng thuật toán Euclide mỡ rộng để tính phần tử nghịch đảo rau: a) 17-1 mod 101 b) 357-1 mod 1234 c) 3125-1 mod 9987 4.2 Gi¶i hệ phơng trình đồng d sau: x 12 (mod 25) x ≡ (mod 26) x ≡ 23 (mod 27) 4.3 Giải hệ phơng trình đồng d sau 13x ≡ (mod 99) 15x ≡ 56 (mod 101) gỵi ý: trớc tiên h y dùng thuật toán Euclide mỡ rông áp dụng định lý phần d China 4.4 Ta nghiên cứu số tính chất nguyên thuỷ a) 97 số nguyen tố H y chøng minh r»ng x ≠ lµ mét nguyên thuỷ theo modulo 97 x32 ≡ (mod 97) vµ x48 ≡ (mod 97) b) H y dùng phơng pháp để tìm nguyên thuỷ nhỏ theo modulo 97 c) Giả sử p số nguyên tố p-1 có phần tích mũ nguyên tố sau : n p − = ∏ pi ei i =1 ë pi số nguyên tố khác H y chứng minh tỏ nguyên thuỷ theo modulo p vµ chØ x ≠ lµ x(p-1)/p ≡ (mod p ) víi ≤ i n i 4.5 Giả sử n =pq, p aq số nguyên tố lẻ phân biệt vad ab ≡ (mod (p1)(q-1)) PhÐp to¸n m ho¸ RSA phép toán giải m e(x) = xb mod n d(y) = ya mod n Ta ® chøng tá r»ng d(e(x)) = nÕu x ∈ Zn * H y chứng tỏ khẳng định ®èi víi bÊt kú x ∈ Zn ChØ dÉn: H y dïng kÕt qu¶ : x1 ≡ x1 (mod pq) vµ chØ x1 ≡ x1 (mod p) vµ x1 x1(mod q) Điều rút từ định lý phần d China 4.6 Hai ví dụ m RSA đợc nêu bảng 4.1 bảng 4.2 Nhiệm vụ bạn phải giải m chúng Các tham số công khai hệ thống n =18923 b = 1261 (bảng 4.1) n = 31313, b = 4913 (víi b¶ng 4.2) PhÐp gi¶i m¶ cáo thể thực nh sau Trớc hết hỹ phân tích n (điều dể n nhỏ) Sau tính số mũ a từ (n) cuối cïng sÏ gi¶i m b¶n m H y dïng thuật toán bình phơng nhân để lấy luỹ thừa theo modulo n B¶ng 4.1 B¶n m RSA 12423 9792 5300 2264 13236 15061 2620 3533 3460 12867 12192 2430 7913 796 9792 56 4277 2364 16979 1367 2186 18676 2364 11748 9522 18628 2951 11524 13692 13951 9553 5300 12347 6276 13842 9886 13203 56 9741 6246 195 14251 4118 10617 15570 15404 2512 9433 4782 6789 14616 14838 14326 722 7243 14407 91 18194 13951 7817 8500 7537 8687 5102 2471 11675 14301 9872 1498 11302 874 3460 6127 14407 13293 11375 11634 11453 7437 9175 15334 7459 18817 8986 3830 8850 7946 201 12259 4481 4742 14334 242 1144 16979 11296 5988 13211 9886 9872 5053 7555 446 4493 17666 3880 9061 841 14303 18830 8007 2664 12129 11675 8850 18110 11231 5053 841 6686 9056 15404 1105 3363 1182 9988 3652 1521 13618 4165 4063 925 11476 650 15610 6127 13556 13167 13998 6091 13924 11178 44 7547 15407 13995 738 15967 14130 4502 15827 3090 3798 14838 297 13000 11634 4576 56 8305 18110 2443 10964 3159 10022 12501 18110 13892 16477 2364 11383 2976 13297 13874 7328 9105 16979 6928 18110 1158 7437 10935 6490 3846 17955 4118 5102 8720 11056 16399 16647 17213 18873 3332 18031 10161 15570 17910 9330 8186 8186 13203 2001 1105 4191 44 9872 2540 17137 5310 14611 7965 18031 2999 15404 2186 Để chuyển rõ trở văn tiếng Anh thông thờng, bạn cần phải ký tự đ đợc m hoá thành phần tử Zn nh Mỗi phần tử Zn biểu thị ba ký tự nh ví dơ sau: DOG × 262 + 14 × 26 +6 = 2398 CAT × 262 + × 26 + 19 = 1371 ZZ 25 × 262 + 25 × 26 + 25 = 17575 B−íc ci cïng chơng trình bạn làm ngợc lại trình Bản rõ đầu lấy The diary of Samuel M¶chbankls” cđa Robertson Davies, 1947 B¶n râ thø hai lÊy tõ cuèn “Lake Wobegon Days” cña Garrison Keillor, 1985 4.7 Bài tập mô tả đợc gọi trục trặc thủ tục Đây ví dụ mà bị đối phơng giải mà không cần phải xác định khoá dùng thiêú thận trọng hệ mật (vì đối phơng xác định Bảng 4.2 Bản m RSA 6340 23316 27584 25774 7908 4082 15698 1417 12437 23055 15930 27486 18154 2149 19554 3183 6000 25973 8309 7135 14999 7647 8635 11803 30317 26905 1108 8267 29748 9741 22319 16975 23614 17347 31280 4477 14010 24996 4517 23901 2149 5314 4685 25809 27106 9917 8635 2149 27705 16087 7553 25234 29413 30989 8936 30596 12146 7372 1908 107 14696 28347 18743 7994 23645 29329 20321 146000 4734 4595 2066 27358 27570 29421 25774 22076 7359 30388 26277 24144 9694 11738 2149 23254 27705 8091 21498 369 25023 26486 26439 18436 7372 22470 8671 7879 10685 2149 24591 5501 13624 19386 23973 6360 23204 16481 30388 1606 12056 8686 7372 29956 20240 25234 10042 20240 14015 3249 7325 14015 19837 8425 25809 9395 17881 13547 1307 22827 15705 21519 30155 27705 27212 30155 5443 26277 107 8463 7792 Khoá nên gọi thám m không đợc xác lắm) Tinh thần dùng hệ mật an toàn toàn cha đủ để đảm bảo liên lạc an toàn toàn Giả sử Bob có hệ mật RSA có modulo n lớn để việc phân tích n thực hiên thời gian chấp nhận đợc Giả sử Alice gửi thong báo cho Bob cách biểu thị ký tự số nguyên khoảng 0- 25 (chẳng hạn A0, B 1,) m hoá ký tự rõ a) H y mô tả cách Oscar giải m dễ dàng m đợc m nh cách b) Minh hoạ cách công qua việc giải m m sau (bản đ đợc m b»ng hƯ mËt RSA víi n = 18721 vµ b = 25) mà không cần phải phân tích n: 365,0,4845,14930,2608,2608,0 4.8 Bài tập mô tả ví dụ khác trục trặc thủ tục (theo Simons)trong RSA đợc gọi trục trặc thủ tục modulo chung Giả sử Bob cã hƯ m©t RSA víi modulo n, sè mị hoá b1 Charlie có hệ mât RSA với modulo n, số mũ hoá b2 Giả sử CLN(b1,b2) =1 Bây ta h y xét tình hình xảy Alice m hoá rõ x để gửi cho Bob Charlie Nh vậy, Alice tÝnh y1 =xb mod n vµ y2 =xb mod n vµ råi gưi y1 cho Bob vµ gưi y2 cho Charlie Giả sử Oscar thu đợc y1 y2 thực tính toán đợc hình 4.16 sau Hình 4.16 trục trặc thủ tục modulo chung Đầu vào : n, b1, b2, y1, y2 TÝnh c1 = b1-1 mod b2 TÝnh c2 = (c1b1- 1)/b2 TÝnh x1 = y1c (y2c )-1 mod n a) H y chøng tá r»ng gi¸ trị x1 tính đợc bớc hình 4.16 thực tế rõ x Alice Bởi vậy, Oscar giải m đợc thông báo mà Alice đ gửi, rõ đợc gửi qua hệ mật đợc coi an toàn b) Minh hoạ cách công qua việc tính x theo phơng pháp nµy nÕu n = 18721,b1 = 945, b2 = 7717, y1 = 12677 y2 = 14702 4.9 Đây lại ví dụ khác trục trặc thủ tơc xoay quanh hƯ mËt RSA Gi¶ sư cã ba ngời dùng mạng Bob, Bar Bert, họ ®Ịu cã sè mị m ho¸ b =3 C¸c modulo tơng ứng n1, n2, n3 Giả sử Alice m hoá rõ x để gửi cho Bob, Bar Bert Khi Alice tính yi = x3 mod ni , i H y mô tả cách tnhs x Oscar đ biết y1, y2, y3, mà không cần phải phân tích ni 4.10 Bản rõ x đợc gọi cố định ek(x) = x H y chứng tỏ hệ mật RSA, số rõ cố định x Zn* CLN(b-1, p-1) ì CLN(b-1, p-1) Chỉ dẫn: xét hệ hai phơng trình đồng d: eK (x1) ≡ x (mod p), eK(x2) ≡ x (mod p) 4.11 Giả sử A thuật toán tất định có đầu vào RSA modulo n m y A giải m y lời giải Giả sử có ì n m mà giải, hay rõ cách dùng A làm chơng thuật toán giải m Las Vegas có xác suất không thành công Chỉ dẫn: sử dung tính chất nhân RSA eK (x1) eK(x2) = eK(x1x2) tất phép toán số học theo modulo n 4.12 Viết chơng trình để đánh giá ký hiệu Jacobi cách dùng bốn tính chất đợc nêu phần 4.5 Chơng trình không thực việc phân tích thừa số trừ việc phân luỹ thừa bậc hai H y kiểm tra chơng trình bạn qua viƯc tÝnh c¸c ký hiƯu Jacobi sau: 610 20964 1234567 , , 987 1987 111111.11 ch−¬ng trình tính số số giả nguyên tố Euler theo H y viết 4.13 sở 837, 851 1189 4.14 Mục đích tập phải chứng tỏ rằng: xác suất kiểm tra tính nguyên tố Solovay- Strassen nhiều 1/2 Giả sử Zn* nhóm phần tử khả nghịch theo modulo n Ta định nghĩa: * a G(n) = {a : a ∈ Zn , ≡ a ( n- ) / (mod n)} n a) H y chøng minh r»ng, G(n) lµ mét nhãm Zn* Do theo định lý Lagrange G(n) ≠ Zn* th× G(n) ≤ Zn* /2 ≤ (n-1)/2 b) Giả sử n = pkq, p q số lẻ, p số nguyên tố, k CLN(p,q) =1 Giả sử a = 1+pk-1q Chøng minh r»ng: a ( n−1) / (mod n) a n Chỉ dẫn: Dùng định lý nhị thức để tính a(n-1)/2 c) Giả sử n = p1 ps pi số nguyên tố lẻ phân biệt Giả sử a u (mod n) vµ a ≡ (mod p2p3 .ps), u thặng d không bậc hai theo modulo p1 (Chó ý r»ng, a nh− vËy tån t¹i theo định lý phần d China) H y chứng minh r»ng: a ≡ −1(mod n) n nh−ng a(n-1)/2 ≡ (mod p2p3…ps) nªn a(n-1)/2 ≡ -1 9mod n) d) Nếu n số hợp số lẻ, chứng minh r»ng : | G(n) | ≤ (n-1) /2 e) Tổng hợp kết trên, h y chứng minh xác suất sai phép kiểm tra tính nguyên tố Solovay- Strassen nhiều 1/2 4.15 Giả sử ta cã tht to¸n Las-Vegas víi x¸c st sai ε a) H y chứng minh rằng, xác suất thành công lần đầu sau phép thử thứ n : pn = n-1 (1-) b) Số phép thử trung bình để đạt thành công : n =1 (n ì pn) H y chứng tỏ giá trị 1/(1-) c) Giả sử số dơng thùc nhá h¬n H y chøng tá r»ng sè phép lặp cần thiết để giảm xác suất sai tối đa là: log log ε 4.16 Gi¶ sư thiÕu trần trọng, Bob đ để lộ số mũ giải m a = 14039 hệ mật RSA với khoa công khai n = 36581 b = 4679 áp dụng dụng thuật toán sác suất để phân tích n theo thông tin đợc biết H y kiểm tra thuật toan bạn với phép chọn ngẫu nhiên w = 9983 w = 13461 H y tất tính toán 4.17 H y chứng minh phơng trình 4.1 4.2 có liên quan đến hàm half parity 4.18 giả sử p = 199, q = 211 b = 1357 hÖ mËt Rabin H y thùc hiÖn tính toán sau: a) Xác định bậc hai cđa modulo n, ®ã n =pq b) TÝnh phÐp m y = ek(32767) c) Xác định giả m m y đ cho 4.19 H y phân tích thừa số số 262063 9420457 phơng pháp p1 Trong trờng hợp, để thành công phải chọn B lơn nh nào? ... trên: (8 340 9 341 56 × 2 044 942 944 ×2773700011)2 ≡(2× 3× 7× 13)2 (mod n) Rót gọn biểu thức bên dấu ngặc theo modulo n, ta cã: 950 343 57852 ≡ 546 2 (mod n) Sau ®ã tÝnh: −CLN(950 343 5785- 546 , 1577070 844 1)=115759... đợc dự tính kỹ lỡng Ví dụ 4. 15 Giả sử n=1577070 844 1(giá trị n đ dùng ví dụ 4. 14) Giả sử b = {2,3,5,7,11,13} XÐt ba ®ång thøc sau: 8 340 9 341 562 ≡ × (mod n) 12 044 942 944 2 ≡ × × 13 (mod n) 27737000112... Cuối bốn giõi : 10- 43 mod 77 =44 67- 43 mod 77= 24 32- 43 mod 77=66 45 - 43 mod 77= Cã thÓ kiÓm tra lại rằng, rõ đợc m hoá thành m 22 Bây xẽ thảo luận độ mật hệ Rabin Ta xẽ chứng minh thuật toán