Mật mã cổ điển- Chương 42

Chia sẻ: Son Cung | Ngày: | Loại File: DOC | Số trang:17

0
102
lượt xem
16
download

Mật mã cổ điển- Chương 42

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'mật mã cổ điển- chương 42', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Mật mã cổ điển- Chương 42

  1. 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. 1. Chọn một số ngẫu nhiên r , 1≤ r ≤ n-1 2- 2 2. Tính y = r B /4 mod n 3. Gọi chương trình con A(y) để tìm bản giải mã x 4. Tính x1 = x+B/2 5. 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) 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 1-r )(x1+r) (x 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.
  2. 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, mhưmg 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,
  3. 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] . Nếu n < 1012 thì đây là một phươ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. 4.8.1. Phương pháp p-1 Thuậ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. Đầu vào: n và B 1. a=2 2. For j=2 to B do a = aj mod n 3. 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) 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)
  4. a ≡ 2B! (mod n) nên a ≡ 2B! (mod p) vì p nên theo định ý Fermat ta có : n. 135979 × 115979 Trong 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 × 173 nếu lấy B ≥ 173 thì chắc chăn rằng 135978B! như mong muốn. 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 nhưng 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ỉ
  5. 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 hai Thuậ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 x2≡ y2 (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.15 Giả 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:
  6. (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)=115759 Ta 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 ≡ p1 1j × p2 2j × . . .× pB Bj(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)B Nế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
  7. Đâ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 + [ 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 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 ?????????????????? 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
  8. 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 [ n]
  9. phương pháp này là “phân tích thừa số bằng thư điện tử”). 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.
  10. 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ập 4.1. Hãy dùng thuật toán Euclide mỡ rộng để tính các phần tử nghịch đảo rau: -1 a) 17 mod 101 -1 b) 357 mod 1234 -1 c) 3125 mod 9987 4.2. Giải hệ phương trình đồng dư sau: x ≡ 12 (mod 25) x ≡ 9 (mod 26) x ≡ 23 (mod 27)
  11. 4.3.Giải hệ phương trình đồng dư sau 13x ≡ 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 : n e 1 p − 1= ∏ p   i=1 i   ở đâ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)/p ≡ 1 (mod p ) với 1 ≤ i ≤ n i 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 n và 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ả
  12. 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ã RSA 12423 11524 7243 7459 14303 6127 10964 16399 9792 13692 14407 18817 18830 13556 3159 16647 5300 13951 91 8986 8007 13167 10022 17213 2264 9553 18194 3830 2664 13998 12501 18873 13236 5300 13951 8850 12129 6091 18110 3332 15061 12347 7817 7946 11675 13924 13892 18031 2620 6276 8500 201 8850 11178 16477 10161 3533 13842 7537 12259 18110 44 2364 15570 3460 9886 8687 4481 11231 7547 11383 17910 12867 13203 5102 4742 5053 15407 2976 9330 12192 56 2471 14334 841 13995 13297 8186 2430 9741 11675 242 6686 738 13874 8186 7913 6246 14301 1144 9056 15967 7328 13203 796 195 9872 16979 15404 14130 9105 2001 9792 14251 1498 11296 1105 4502 16979 1105 56 4118 11302 5988 3363 15827 6928 4191 4277 10617 874 13211 1182 3090 18110 44 2364 15570 3460 9886 9988 3798 1158 9872 16979 15404 6127 9872 3652 14838 7437 2540 1367 2512 14407 5053 1521 297 10935 17137 2186 9433 13293 7555 13618 13000 6490 5310 18676 4782 11375 446 4165 11634 3846 14611 2364 6789 11634 4493 4063 4576 17955 7965 11748 14616 11453 17666 925 56 4118 18031 9522 14838 7437 3880 11476 8305 5102 2999 18628 14326 9175 9061 650 18110 8720 15404 2951 722 15334 841 15610 2443 11056 2186 Để chuyển bản rõ trở về văn bản tiếng Anh thông thường, bạn cần phải các ký tự đã được “mã hoá” thành các phần tử trong
  13. Zn như thế nào. Mỗi phần tử của Zn sẽ biểu thị ba ký tự như trong các ví dụ sau: DOG  3 × 262 + 14 × 26 +6 = 2398 CAT  2 × 262 + 0 × 26 + 19 = 1371 ZZ  25 × 262 + 25 × 26 + 25 = 17575 Bước cuối cùng trong chương trình của bạn là làm ngược lại quá trình trên. Bản rõ đầu lấy trong cuốn “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 này mô tả cái được gọi là sự trục trặc về thủ tục. Đây là một ví dụ về một bản mà có thể bị đối phương giải mà không cần phải xác định khoá nếu dùng thiêú thận trọng hệ mật ( vì đối phương không phải xác định Bảng 4.2 Bản mã RSA 6340 8309 14010 8936 27358 25023 16481 25809 23316 7135 24996 30596 27570 26486 30388 9395 27584 14999 4517 12146 29421 26439 1606 17881 25774 7647 23901 7372 25774 18436 12056 13547 7908 8635 2149 1908 22076 7372 8686 1307 4082 11803 5314 107 7359 22470 7372 22827 15698 30317 4685 14696 30388 8671 29956 15705 1417 26905 25809 28347 26277 7879 20240 21519 12437 1108 27106 18743 24144 10685 25234 30155 23055 8267 9917 7994 9694 2149 10042 27705 15930 29748 8635 23645 11738 24591 20240 27212 27486 9741 2149 29329 2149 5501 14015 30155 18154 22319 27705 20321 23254 13624 3249 5443 2149 16975 16087 146000 27705 19386 7325 26277 19554 23614 7553 4734 8091 23973 14015 107 3183 17347 25234 4595 21498 6360 19837 8463 6000 31280 29413 2066 369 23204 8425 7792 25973 4477 30989 Khoá nên nếu gọi là thám mã thì không được chính xác lắm). Tinh thần ở đây là dùng hệ mật “ an toàn toàn” vẫn chưa đủ để đảm bảo liên lạc an toàn toàn.
  14. Giả sử Bob có một hệ mật RSA có modulo n lớn để việc phân tích n không thể thực hiên trong một thời gian chấp nhận được. Giả sử Alice gửi một thong báo cho Bob bằng cách biểu thị một ký tự bằng một số nguyên trong khoảng 0- 25 (chẳng hạn A↔0, B ↔1,…) và 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ã bản mã sau (bản này đã đượ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 này mô tả một ví dụ khác về sự trục trặc thủ tục (theo Simons)trong RSA được gọi là 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 còn Charlie có hệ mât RSA với cùng modulo n, số mũ hoá b2. Giả sử UCLN(b1,b2) =1. Bây giờ ta hãy xét tình hình xảy ra nếu Alice mã hoá cùng một bản rõ x để gửi cho cả Bob và Charlie. Như vậy, Alice sẽ tính y1 =xb mod n và y2 =xb mod n và rồi gửi y1 cho Bob và 1 2 gửi y2 cho Charlie. Giả sử Oscar thu được y1 và y2 và thực hiện các tính toán được nếu ở 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 -1 1. Tính c1 = b1 mod b2 2. Tính c2 = (c1b1- 1)/b2 c c -1 3. Tính x1 = y1 (y2 ) mod n 1 2 a) Hãy chứng tỏ rằng giá trị x1 tính được ở bước 3 của hình 4.16 thực tế là bản rõ x của Alice. Bởi vậy, Oscar có thể giải mã
  15. được thông báo mà Alice đã gửi, ngay cả khi bản rõ được gửi qua hệ mật được coi là an toàn. b) Minh hoạ cách tấn 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 và y2 = 14702. 4.9 Đây lại là một ví dụ khác về sự trục trặc thủ tục xoay quanh hệ mật RSA. Giả sử có ba người dùng trong mạng là Bob, Bar và Bert, họ đều có số mũ mã hoá b =3. Các modulo tương ứng n1, n2, n3. Giả sử Alice mã hoá cùng một bản rõ x để gửi cho Bob, Bar và Bert. Khi đó Alice tính yi = x3 mod ni , 1≤ i ≤ 3 Hãy mô tả cách tnhs x của Oscar khi anh ta đã biết y1, y2, y3, mà không cần phải phân tích bất cứ ni nào. 4.10. Bản rõ x được gọi là cố định nếu ek(x) = x. Hãy chứng tỏ rằng đối với hệ mật RSA, số các bản rõ cố định x ∈ Zn* bằng UCLN(b-1, p-1) × UCLN(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 là một thuật toán tất định có đầu vào là một RSA modulo n và bản mã y. A sẽ hoặc giải mã y hoặc không có lời giải. Giả sử rằng có ε × n bản mã mà có thể giải, hay chỉ rõ cách dùng A làm một chương con trong thuật toán giải mã Las Vegas có xác suất không thành công là ε . Chỉ dẫn: sử dung tính chất nhân của RSA là eK (x1) eK(x2) = eK(x1x2) trong đó tất cả các phép toán số học là theo modulo n. 4.12. Viết một chương trình để đánh giá các ký hiệu Jacobi bằng 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 hiện việc phân tích thừa số trừ việc phân ra các luỹ thừa bậc hai. Hãy kiểm tra chương trình của bạn qua việc tính các ký hiệu Jacobi sau:
  16.  610   20964  1234567   , ,   987   1987   111111.  11 4.13. Hãy viết một chương trình tính số các số giả nguyên tố Euler theo các cơ sở 837, 851 và 1189. 4.14. Mục đích của bài tập này là phải chứng tỏ rằng: xác suất của kiểm tra tính nguyên tố Solovay- Strassen nhiều nhất là 1/2 . Giả sử Zn* là nhóm các phần tử khả nghịch theo modulo n. Ta định nghĩa: a)  a   không bậc hai theo modulo p1. (Chú ý rằng, a như vậy tồn tại n theo định lý phần dư China). Hãy chứng minh rằng: ≡ -1 (mod n) nhưng a(n-1)/2 ≡ 1 (mod p2p3…ps) nên a(n-1)/2 ≡ -1 9mod n) b) Nếu n là một số hợp số lẻ, chứng minh rằng : | G(n) | ≤ (n-1) / 2 c) Tổng hợp các kết quả trên, hãy chứng minh rằng xác suất sai của phép kiểm tra tính nguyên tố Solovay- Strassen nhiều nhất là 1/2. 4.15. Giả sử ta có thuật toán Las-Vegas với xác suất 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 là : Pn = ε n-1 (1-ε ) b) Số phép thử trung bình để đạt thành công là : ∞ ∑ n=1 (n × pn) . Hãy chứng tỏ rằng giá trị này bằng 1/(1-ε )
  17. c) Giả sử δ là một số dương thực nhỏ hơn 1. Hãy chứng tỏ rằng số các phép lặp cần thiết để giảm xác suất sai tối đa δ là:  l 2δ  og    l 2ε  og 4.16. Giả sử thiếu trần trọng, Bob đã để lộ số mũ giải mã của mình là a = 14039 trong hệ mật RSA với khoa công khai n = 36581 và 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 này. Hãy kiểm tra thuật toan của bạn với các phép chọn ngẫu nhiên w = 9983 và w = 13461. Hãy chỉ ra tất cả các tính toán . 4.17. Hãy chứng minh các phương trình 4.1 và 4.2 có liên quan đến các hàm half và parity. 4.18. giả sử p = 199, q = 211 và b = 1357 trong hệ mật Rabin. Hãy thực hiện tính toán sau: a) Xác định 4 căn bậc hai của modulo n, trong đó n =pq. b) Tính phép mã y = ek(32767) c) Xác định 4 bản giả mã có thể của bản mã y đã cho. 4.19. Hãy phân tích ra thừa số các số 262063 và 9420457 bằng phương pháp p-1. Trong mỗi trường hợp, để thành công phải chọn B lơn như thế nào?.
Đồng bộ tài khoản