1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phân tích thừa số nguyên tố và ứng dụng trong mật mã

47 1,2K 2

Đ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

Định dạng
Số trang 47
Dung lượng 304,7 KB

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

Nội dung

CHƯƠNG1PHÂN TÍCH THỪA SỐ NGUYÊN TỐ VÀ ỨNG DỤNGTRONG MẬT MÃ RSA 1.1 Công thức Euler Phương pháp thay đổi khóa Diffie-Hellman và hệ thống mật mã khóa công khai ElGamal đã nghiên cứu dựa tr

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

KHOA TOÁN

———————o0o——————–

KHÓA LUẬN TỐT NGHIỆP

PHÂN TÍCH THỪA SỐ NGUYÊN TỐ VÀ ỨNG

DỤNG TRONG MẬT MÃ

Chuyên ngành: TOÁN ỨNG DỤNG

Giảng viên hướng dẫn: Trần Vĩnh Đức

Sinh viên: Đặng Kiều Trang Lớp: K37-sp Toán

HÀ NỘI, 5/2015

Trang 2

LỜI CẢM ƠN

Bài khóa luận này được hoàn thành dưới sự hướng dẫn nhiệt tình của thầy giáo T.S Trần Vĩnh Đức Qua đây em xin gửi lời cảm ơn sâu sắc tới các thầy cô trong tổ Toán ứng dụng và các thầy cô trong khoa Toán trường ĐHSP Hà Nội 2 đã giúp đỡ em trong quá trình học tập để thuận lợi cho việc nghiên cứu Đặc biệt, em xin gửi lời cảm ơn chân thành tới thầy giáo T.S Trần Vĩnh Đức người đã dành cho em sự hướng dẫn nhiệt tình, chu đáo

và chỉ bảo cho em trong suốt quá trình học tập nghiên cứu và thực hiện khóa luận.

Dù đã hết sức cố gắng, nhưng do đây là lần đầu tiên làm quen với việc nghiên cứu khoa học và do năng lực còn hạn chế nên khó tránh khỏi những sai sót Em mong muốn nhận được sự chỉ bảo, đóng góp của quí thầy cô để cho bài khóa luận được tốt hơn.

Em xin chân thành cảm ơn!

Hà Nội, tháng 05 năm 2015

Sinh viên

Đặng Kiều Trang

Trang 3

LỜI CAM ĐOAN

Sau một thời gian nghiên cứu với sự cố gắng, nỗ lực của bản thân cùng sự hướng dẫn nhiệt tình chỉ bảo của thầy giáo T.S Trần Vĩnh Đức em đã hoàn thành bài khóa luận của mình.

Em xin cam đoan bài khóa luận là do bản thân nghiên cứu cùng với sự hướng dẫn của thầy giáo T.S Trần Vĩnh Đức không hề trùng với bất cứ đề tài nào.

Hà Nội, tháng 05 năm 2015

Sinh viên

Đặng Kiều Trang

Trang 4

MỤC LỤC

1 Phân tích thừa số nguyên tố và ứng dụng trong mật mã RSA 4

1.1 Công thức Euler 4

1.2 Hệ mật mã khóa công khai RSA 10

1.3 Kiểm tra tính nguyên tố 14

1.4 Thuật toán phép nhân tử hóa Pollard p-1 19

1.5 Phân tích thừa số qua hiệu của các bình phương 23

2 Số trơn, sàng và xây dựng quan hệ cho phép nhân tử hoá 33 2.1 Số trơn 33

2.2 Sàng bậc hai 34

2.3 Sàng trường số 41

Trang 5

CHƯƠNG1PHÂN TÍCH THỪA SỐ NGUYÊN TỐ VÀ ỨNG DỤNG

TRONG MẬT MÃ RSA

1.1 Công thức Euler

Phương pháp thay đổi khóa Diffie-Hellman và hệ thống mật mã khóa công

khai ElGamal đã nghiên cứu dựa trên thực tế thì nó rất dễ để tính lũy thừa

an mod p, nhưng rất khó để tìm lại các số mũ n nếu ta chỉ biết giá trị của a

và an mod p Một kết quả quan trọng mà chúng ta sử dụng để phân tích tính

đúng đắn của Diffie-Hellman và ElGamal là Định lý Fermat nhỏ,

ap−1 ≡ 1(mod p) với mọi a 6≡ 0 (mod p)

Định lý Fermat nhỏ thể hiện một tính chất tốt của các số nguyên tố Nó cho ta

biết điều gì sẽ xảy ra nếu thay p bằng số m không phải là số nguyên tố, tức là

am−1 ≡ 1 (mod p) có đúng không? Ta thấy câu trả lời là không Trong phần

này ta đi tìm hiểu khái quát tính đúng đắn của Định lý Fermat nhỏ khi m = pq

là tích của hai số nguyên tố phân biệt, vì đây là trường hợp quan trọng nhất

trong các ứng dụng mã hóa

Ta bắt đầu với một ví dụ Với lũy thừa modun 15 sẽ làm như thế nào? Nếu

ta thực hiện bảng của lũy thừa bậc 2 và bậc 3 mod 15, chúng trông không thật

thú vị, nhưng nhiều lũy thừa bậc 4 đồng dư với 1 mod 15 Cụ thể, ta thấy rằng

a4 ≡ 1 (mod 15) với a = 1, 2, 4, 7, 8, 11, 13 và 14;

a4 6≡ 1 (mod 15) với a = 3, 5, 6, 9, 10 và 12

Vậy sự khác nhau giữa dãy các số1, 2, 4, 7, 8, 11, 13, 14với dãy các số3, 5, 6, 9, 10, 12, 15

là gì? Ta thấy, mỗi số 3, 5, 6, 9, 10, 12, 15 đều có một bội chung 15, còn các số

Trang 6

1, 2, 4, 7, 8, 11, 13, 14 là các số nguyên tố cùng nhau với 15 Điều này cho thấyrằng một số phiên bản của Định lý nhỏ Fermat cũng đúng nếu sốa là số nguyên

tố cùng nhau với modun m, nhưng số mũ không nhất thiết phải là m − 1.Cho m = 15 ta thấy số mũ đúng là 4 Tại sao là 4? Ta có thể dễ dàng kiểmtra với mỗi giá trị củaa, nhưng có một thuật toán cụ thể sẽ tốt hơn Để chứngminh a4 ≡ 1 (mod 15) ta cần kiểm tra 2 đồng dư thức

a(p−1)(q−1)/g ≡ 1 (mod pq) ∀a thỏa mãn UCLN(a, pq) = 1

Đặc biệt, nếu p và q là các số nguyên tố lẻ, thì

a(p−1)(q−1)/2 ≡ 1 (mod pq) ∀a thỏa mãn UCLN(a, pq) = 1

Chứng minh Theo giả thiết ta thấy p 6 a và g q − 1, nên ta có thể tính

a(p−1)(q−1)/g = (a(p−1))(q−1)/g vì (q − 1)/g là một số nguyên,

≡ 1(q−1)/g (mod p) vì ap−1 ≡ 1 (mod p) theo Định lý Fermat nhỏ,

≡ 1 (mod p) vì 1 lũy thừa luôn bằng 1!

Trang 7

Tương tự, thay đổi vai trò của p và q, ta có

Mệnh đề 1.1.2 Cho p là một số nguyên tố và e ≥ 1 là một số nguyên thỏamãn UCLN(e, p − 1) = 1 Ta thấy rằng e có modun nghịch đảo p − 1, ta nói

de ≡ 1 (mod p − 1)

Khi đó đồng dư thức

xe ≡ c (mod p)

có nghiệm duy nhất x ≡ cd (mod p)

Chứng minh Nếu c ≡ 0 (mod p), thì x ≡ 0 (mod p) là nghiệm duy nhất mà

ta cần tìm Giả sử c 6≡ 0 (mod p). Đồng dư thức de ≡ 1 (mod p − 1) có nghĩa

là tồn tại một số nguyên k sao cho

de = 1 + k(p − 1)

Trang 8

Bây giờ ta kiểm tra cd là một nghiệm của phương trình

xe ≡ c (mod p) :(cd)e ≡ cde (mod p) luật số mũ,

≡ c1+k(p−1) (mod p) vì de = 1 + k(p − 1),

≡ c(cp−1)k (mod p) luật số mũ,

≡ c · 1k (mod p) từ Định lý Fermat nhỏ,

≡ c (mod p)

Như vậy x = cd là một nghiệm của xe ≡ c (mod p)

Để chứng minh nghiệm đó là duy nhất, ta giả sử x1 và x2 là hai nghiệm củađồng dư thức 1.1.2 Ta chỉ cần chứng minh zde ≡ z (mod z) với z bất kỳ, tathấy

x1 ≡ x1de ≡ (x1e)d ≡ cd ≡ (x2e)d ≡ x2de ≡ x2 (mod p)

Vậy Mệnh đề 1.1.2 có nghiệm duy nhất

Ví dụ 1.1.3 Giải đồng dư thức sau

là nghiệm của x1583 ≡ 4714 (mod 7919)

Mệnh đề 1.1.2 cho thấy rằng rất dễ để tính nghệm nếu modun p là một sốnguyên tố Trong trường hợp cho modun N là một hợp số thì sẽ có một sựkhác biệt rất quan trọng Nếu chúng ta biết phân tích N thì lại dễ dàng để tínhnghiệm Các mệnh đề sau đây trình bày phương pháp làm trong trường hợp

N = pq là tích của hai số nguyên tố Các trường hợp tổng quát được để lại xemnhư Bài tập

Trang 9

Mệnh đề 1.1.4 Cho p và q là các số nguyên tố khác nhau và e ≥ 1 thỏa mãn

Do đó x = cd là nghiệm của đồng dư thức (1.2) Ta đi chứng minh nghiệm này

là duy nhất Giả sử x = u cũng là nghiệm của (1.2), khi đó

u ≡ ude−k(p−1)(q−1) vì de = 1 + k(p − 1)(q − 1)

≡ (ue)d.(u(p−1)(q−1))−k

≡ (ue)d.1−k (mod pq) sử dụng công thức Euler (Định lý 1.1.1)

≡ cd (mod pq) vì u là nghiệm của (1.2)

Do đó, tất cả nghiệm của (1.2) đều đồng dư với cd (mod pq), như vậy đó lànghiệm duy nhất

Trang 10

Nhận xét 1.1.5 Mệnh đề 1.1.4 đưa ra một thuật toán để giảixe ≡ c(mod pq).

Đầu tiên là giải de = 1(mod (p − 1)(q − 1)), rồi tính cd(mod pq) Ta có thểlàm cho các tính toán nhanh hơn bằng cách sử dụng một giá trị nhỏ hơn d Cho

g = UCLN(p − 1, q − 1) và giả sử ta giải đồng dư thức sau với d :

Từ công thức Euler (Định lý 1.1.1) ta có a(p−1)(q−1)/g ≡ 1 (mod pq) Do đó như

trong chứng minh của Mệnh đề 1.1.4, nếu ta viết de = 1 + k(p − 1)(q − 1)/g,thì

với modun N = 64 · 349 = 229 · 281 là tích của hai số nguyên tố p = 229 và

q = 281 Bước đầu tiên là giải đồng dư thức

17389 ≡ 1 (mod 63840),

với 63840 = (p − 1)(q − 1) = 228 · 280. Giải đồng dư thức, ta được d =

53509 (mod 63840) Sau đó, từ Mệnh đề 1.1.4 ta có

x ≡ 4391253509 ≡ 14458 (mod 64349),

là nghiệm của x17389 ≡ 43927 (mod 64349)

Ta có thể giảm đi một chút công việc bằng cách sử dụng các ý tưởng đượctrình bày trong Nhận xét 1.1.5 Ta có

g = UCLN(p − 1)(q − 1) = UCLN(228, 280) = 4

Dó đó (p − 1)(q − 1)/g = (228)(280)/4 = 15960, từ đây ta có thể tìm đượcmột giá trị của d bằng cách giải đồng dư thức

17389 ≡ 1 (mod 15960),

Trang 11

có nghiệm là d ≡ 5629 (mod 15960), và do đó

x ≡ 439275629 ≡ 14458 (mod 64349),

là nghiệm của x17389 ≡ 14458 (mod 64349)

Chú ý rằng ta cũng có những nghiệm tương tự, nhưng ta chỉ cần nâng 43927

lên lùy thừa 5629th, trong khi sử dụng Mệnh đề 1.1.4 yêu cầu trực tiếp ta nâng

43927 lên lũy thừa 53509th Cách làm này tiết kiệm thời gian, mặc dù khôngphải là nhiều

Tạo khóaChọn số nguyên tố bí mật p và q

Chọn số mũ mã hóa e với

UCLN(e, (p − 1)(q − 1)) = 1

Cho biết N = pq và e

Mã hóaChọn bản rõ m

Sử dụng khóa công khai của Bob (N,e)

để tính c ≡ me (mod N)

Gửi bản mã cho Bob

Giải mãTính d thỏa mãn

ed ≡ 1 (mod (p − 1)(q − 1))

Tính m′ ≡ cd (mod N)

khi đó m′ là bản rõ m

Bảng 1.1: Thành lập khóa RSA, mã hóa và giải mã

1.2 Hệ mật mã khóa công khai RSA

Bob và Alice có những vấn đề thông thường của việc trao đổi thông tin bímật trên một đường dây thông tin liên lạc an toàn Bob và Alice có nhiều cách

Trang 12

khác nhau thực hiện công việc này, phụ thuộc vào độ khó của việc giải quyếtcác bài toán logarit rời rạc Trong phần này chúng ta trình bày các hệ thốngmật mã khóa công khai RSA là hệ thống phát minh đầu tiên và tất nhiên đượcbiết đến nhiều nhất RSA được đặt tên theo những nhà phát minh ra nó là RonRivest, Adi Shamir và Leonard Adleman.

Việc bảo mật RSA phụ thuộc vào phép lưỡng phân sau

• Thiết lập Cho p và q là số nguyên tố lớn, cho N = pq, và cho e và c làcác số nguyên

• Bài toán Giải đồng dư thức xe ≡ c (mod N) với ẩn x

Thuận lợi Bob, người biết được các giá trị của pvà q, có thể dễ dàng tìm

x như trình bày trong Mệnh đề 1.1.4

Khó khăn Eve, người không biết giá trị của p và q, không thể dễ dàngtìm x

Phép lưỡng phân Giải xe ≡ c (mod N) là dễ dàng cho người có thêm

thông tin bổ sung, nhưng nó dường như là khó khăn cho tất cả những ngườikhác

Hệ thống mật mã khóa công khai RSA được tóm tắt trong Bảng 1.1 Khóa

bí mật của Bob là một cặp số nguyên tố lớn p và q Khóa công khai của ông

là cặp (N, e) gồm tích N = pq và một số mũ mã hóa e nguyên tố cùng nhau.Alice có bản rõ của mình và biến đổi nó thành số nguyên m trong khoảng từ 1

đến N Cô mã hóa m bằng cách tính đại lượng

c ≡ me (mod N)

Số nguyên c là bản mã của cô, mà cô gửi cho Bob Bob dễ dàng giải đồng dưthức xe ≡ c (mod N) để phục hồi thông tin m của Alice, vì Bob đã biết phântích thừa số N = pq Mặt khác, Eve có thể chặn được bản mã c nếu cô ấy biếtphân tích N, cô có lẽ đã gặp khó khăn khi giải xe ≡ c (mod N)

Ví dụ 1.2.1 Có thể minh họa hệ mật khóa công khai RSA với một ví dụ bằng

số nhỏ Tất nhiên, ví dụ này là không an toàn, vì con số này là quá nhỏ nênEve sẽ dễ phân tích được N

Việc triển khai an toàn của RSA sử dụng modun N với hàng trăm chữ số

Sự Thành Lập Khóa K

Trang 13

• Bob chọn hai số nguyên tố bí mật p = 1223 và q = 1987 Bob tính modunchung của chúng

Giá trị mà ông tính chính là thông điệp m = 1070777 của Alice

Nhận xét 1.2.2 Các số N và e hình thành khóa công khai của Bob được gọitương đương với modun và số mũ mã hóa Số d mà Bod sử dụng giải mã thôngtin của Alice mà d thỏa mãn

ed ≡ 1 (mod (p − 1)(q − 1)), (1.3)

được gọi là chỉ số mã hóa Rõ ràng là mã hóa sẽ hiệu quả hơn nếu chỉ số mãhóa e là một số nhỏ và tương tự như vậy thì giải mã sẽ hiệu quả hơn nếu chỉ sốgiải mã d là số nhỏ Tất nhiên, Bob không thể chọn cả mã hóa và giải mã đều

là giá trị nhỏ vì khi một trong hai được lựa chọn thì cái còn lại sẽ được coi làđồng dư thức (1.3)

Trang 14

Chú ý rằng Bob không thể lấy e = 2 vì ông cần e là số nguyên tố cùng nhauvới (p − 1)(q − 1). Do đó, giá trị nhỏ nhất có thể của e là e = 3 Như chúng

ta biết, khi lấy e = 3 thì an toàn như là lấy giá trị lớn hơn của e dù cho vẫn

có một số điểm không thỏa đáng Những ai muốn nhanh chóng mã hóa nhưnglại lo ngại với e = 3 quá nhỏ, khi đó thường lấy e = 216+ 1 = 65537, vì nó chỉmất bốn phép bình phương và một phép nhân để tính m65537

Một cách khác cho Bob là sử dụng một giá trị nhỏ cho d và sử dụng đồng dưthức (1.3) để xác định e, nên e sẽ lớn Tuy nhiên, điều này lại có thể dẫn đếnphiên bản không an toàn của RSA Chính xác hơn là nếu d nhỏ hơn N1/4, thì

lý thuyết liên phân số cho phép Eve phá vỡ RSA

Nhận xét 1.2.3 Thuật toán mã hóa công khai số N = pq, là tích của hai sốnguyên tố bí mậtpvàq.Mệnh đề 1.1.4 cho biết nếu Eve biết giá trị(p−1)(q−1),thì bà có thể giải xe ≡ c (mod N), và dó đó có thể mã hóa những thông tin

được gửi cho Bob

Khai triển hệ thức (p − 1)(q − 1) ta được

(p − 1)(q − 1) = pq − p − q + 1 = N − (p − q) + 1 (1.4)

Bob đã công bố giá trị N, vì vậy Eve bây giờ đã biết N Do đó, nếu Eve có thểxác định giá trị của tổng p + q thì (1.4) sẽ cho bà biết giá trị (p − 1)(q − 1) cóthể giúp bà mã hóa những thông tin

Thực tế, nếu Eve biết các giá trị p + q và pq, thì sẽ rất dễ để tính giá trị của

p và q Bà chỉ cần sử dụng công thức bậc hai để tìm ra những nghiệm của đathức

X2 − (p − q)X + pq,

vì phân tích đa thức thành nhân tử bằng (X − p)(X − q), nên các nghiệm của

nó là p và q Do đó, khi Bob đưa ra giá trị N = pq thì sẽ chẳng dễ dàng choEve khi tìm ra giá trị của (p − 1)(q − 1) hơn là khi tìm p và q

Chúng ta minh họa bằng ví dụ sau Giả sử Eve biết rằng:

N = pq = 66240912547 và (p − 1)(q − 1) = 66240396760.

Đầu tiên bà sử dụng (1.4) để tính

p + q = N + 1 − (p − 1)(q − 1) = 515788

Trang 15

Sau đó bă sử dụng công thức bậc hai để phđn tích đa thức thănh nhđn tử:

X2 − (p + q)X + N = X2 − 515788X + 66240912547

= (X − 241511)(X − 274277)

Phĩp tính năy cho bă phđn tích thừa số N = 66240912547 = 241511 · 274277.Nhận xĩt 1.2.4 Chúng ta có đê cho thấy rằng Eve sẽ chẳng thấy dễ dăng khixâc định (p − 1)(q − 1) hơn lă bă phđn tích N Nhưng lại không chứng minhđược Eve buộc phải phđn tích N để giải mê những thông tin của Bob Vấn đề

lă những gì Eve cần lăm để giải những đồng dư thức dạng xe ≡ c (mod N), vă

nhận thức được rằng có thuật toân hiệu quả để giải những đồng dư thức nhưvậy mă không cần tìm giâ trị của (p − 1)(q − 1). Không ai tìm ra phương phâpnăo như vậy tồn tại dù gợi ý rằng tính những nghiệm modun N có thể đơn giảnhơn phđn tích N

1.3 Kiểm tra tính nguyín tố

Bob đê đọc xong câc phần trín vă bđy giờ sẵn săng truyền thông tin choAlice bằng câch dùng cặp khóa công khai/bí mật RSA của ông Để tạo ra cặpkhóa mê hóa RSA, Bob cần chọn hai số nguyín tố rất lớn lă p vă q Ông khôngchọn được hai số nguyín tố đủ lớn nhưng có thể lă hợp số, đó lă những số p vă

q Trước hết, nếu p vă q không phải lă số nguyín tố thì Bob sẽ cần phải biếtcâch phđn tích chúng để giải mê thông tin của Alice Nhưng thậm chí tệ hơn,nếu p vă q lă những số nguyín tố nhỏ, thì Eve có thể sẽ phđn tích được pq văphâ vỡ hệ thống của Bob

Do đó, Bob cần phải tìm ra những số nguyín tố lớn hơn Chính xâc hơn lẵng cần một câch năo đó để phđn biệt số nguyín tố vă hợp số vì nếu ông tìm racâch lăm năy, thì ông có thể chọn ngẫu nhiín những số cho tới khi ông thấy nó

lă số nguyín tố Chúng ta sẽ thảo luận về vấn đề khả năng số được chọn ngẫunhiín lă số nguyín tố sau năy, nhưng bđy giờ thì ông đê có cơ hội tốt để thănhcông Do đó, những gì Bob thực sự cần lă một câch hiệu quả để xâc định một

số rất lớn lă số nguyín tố

Trang 16

Ví dụ, giả sử như Bob chọn số lớn có giá trị:

Đồng dư thức (1.5) cho Bob biết rằng n là hợp số dù cho nó không cho ông bất

kỳ dấu hiệu nào về cách phân tích n Tại sao? Xem lại định lý Fermat, nếu p

là số nguyên tố thì ap−1 ≡ 1 (mod p) (trừ trương hợp a chia hết cho p) Do đó,nếu n là số nguyên tố, thì vế phải của (1.5) có thể đồng dư với 1, vì nếu khôngđồng dư với 1 thì Bob kết luận n không là số nguyên tố

Trước khi tiếp tục phần trước đây liên quan đến sự tìm kiếm của Bob vềnhững số nguyên tố lớn, chúng ta phát biểu phiên bản thuận tiện của Định lýFermat nhỏ, mà không có điều kiện nào ở a

Định lí 1.3.1 (Đinh lý Fermat, phiên bản 2) Cho p là số nguyên tố Khi đó

ap ≡ a (mod p) với mọi số nguyên a (1.6)Chứng minh Nếu p ∤ a, thì bản đầu tiên của Định lý Fermat cho thấy ap−1 ≡

1 (mod p) Khi nhân cả hai vế với a ta chứng minh được (1.6) là đúng Mặtkhác, nếu p|a thì cả hai vế của (1.6) đồng dư với 0 modun p

Quay lại với sự tìm kiếm của Bob, ta thấy ông ấy chẳng có chút lo ngại nàokhi ngẫu nhiên chọn một số lớn khác,

n = 2967952985951692762820418740138329004315165131 (1.7)Sau khi kiểm tra tính chia hết bởi những số nguyên tố nhỏ, Bob tính 2n mod n

và tìm được

Trang 17

Từ (1.8) kết hợp với Định lý Fermat (1.3.1) có chứng minh đượcn là số nguyên

tố hay không? Câu trả lời là không! Định lý Fermat chỉ làm việc theo một chiều:

Nếu p là số nguyên tố, thì ap ≡ a (mod p)

Chẳng có gì để cản trở tính đồng dư (1.8) là đúng với các giá trị hợp số của n,

và thực tế nghiên cứu cơ bản đưa ra những ví dụ như:

2341 ≡ 2 (mod 341) với 341 = 11.31

Tuy nhiên, khi 2n ≡ 2 (mod n) sẽ có nhiều khả năng n là số nguyên tố, vì nếugiá trị của 2n mod n ra khác thì n là hợp số Điều này dẫn đến định nghĩa sauđây

Định nghĩa 1.3.2 Số nguyên n cố định Ta nói số nguyên a là chứng thực(cho tính hợp số) của n nếu

(i) aq đồng dư với 1 modun p

(ii) Một trong những aq, a2q, a4q, , a2k−1q, đồng dư với 1 modun p

Chứng minh Định lý Fermat nhỏ cho ta biết rằng ap−1 ≡ 1 (mod p) Quan sát

dãy số:

aq, a2q, a4q, , a2k−1q, a2kq,

ta biết rằng số cuối cùng trong dãy số làap−1,đồng dư với 1 modun p.Hơn nữa,mỗi số trong dãy trên là bình phương của số trước Do đó, một trong nhữngkhả năng sau đây buộc phải xảy ra:

(i) Số đầu tiên trong dãy đồng dư với 1 modun p

(ii) Vài số trong dãy không đồng dư với 1 modun p nhưng khi nó được bìnhphương, nó sẽ đồng dư với 1 modun p Nhưng số duy nhất thỏa mãn cả haiđiều kiện:

b 6≡ 1 (mod p) và b2 ≡ 1 (mod p)

Trang 18

là −1, vì vậy một trong những số trong dãy là đồng dư với −1 modun p. Điềunày hoàn tất chứng minh của Mệnh đề 1.3.3

Đưa vào Số nguyên n được kiểm tra, số nguyên a như là chứng thựctiềm năng

1 Nếu n chẵn hoặc 1 < UCLN(a, n) < n, trả lại Hợp số

Bảng 1.2: Kiểm tra Miller–Rabin cho hợp số

Định nghĩa 1.3.4 Cho n là số lẻ và viết n − 1 = 2kq với q lẻ Số nguyên a

mà thỏa mãn UCLN(a, n) = 1 được gọi là chứng thực Miller-Rabin cho hợp sốcủa n nếu cả hai điều kiện sau đây đều đúng:

(a) aq 6≡ 1 (mod n)

(b) a2iq 6≡ −1 (mod n) với mọi i = 0, 1, 2, , k − 1

Nó tuân theo Mệnh đề 1.3.3, đó là nếu tồn tại một số amà chứng thực Rabin với n thì n chắc chắn là hợp số Phương pháp kiểm tra Miller-Rabin chohợp số được trình bày ở Bảng 1.2

Miller-Bây giờ, giả sử rằng Bob muốn kiểm tra số lớn n có thể là số nguyên tốkhông? Để làm điều này, ông đã làm phương pháp kiểm tra Miller-Rabin sửdụng một loạt những giá trị được lựa chọn ngẫu nhiên của a Tại sao điều nàylại tốt hơn việc dùng phương pháp kiểm tra định lí Fermat nhỏ? Câu trả lời làkhông có số nào giống như Carmichael cho phương pháp kiểm tra Miller-Rabin

và thực tế mỗi hợp số đều có rất nhiều chứng thực Miller-Rabin như được trìnhbày ở mệnh đề sau đây

Trang 19

Mệnh đề 1.3.5 Cho n là hợp số lẻ Khi đó ít nhất 75% những số giữa 1 và

75%cơ hội chứng minh được nó Vì Bob không tìm được chứng minh nào trong

10 lần thử đó, nên hợp lý khi kết luận rằng xác suất n là hợp số có ít nhất

(25%)10, xấp xỉ với 10−6 Và nếu không đủ thì Bob có thể sử dụng 100 giá trịkhác nhau của a và nếu không giá trị nào chứng minh n là hợp số thì xác suất

n là hợp số sẽ ít hơn (25%)100 ≈ 10−60

Ví dụ 1.3.6 Chúng ta minh họa phương pháp kiểm tra Miller-Rabin vớia = 2

và n = 561 trong đó, bạn có thể nhớ lại định nghĩa về số Carmichael.Ta phântích

Trang 20

Áp dụng phương pháp kiểm tra Miller-Rabin với a = 17 và tìm được:

1.4 Thuật toán phép nhân tử hóa Pollard p-1

Chúng ta đã thấy là tương đối dễ để kiểm tra một số lớn liệu có phải là sốnguyên tố không Điều này là tốt vì hệ thống mã hóa RSA cần những số nguyên

tố lớn để thực hiện

Ngược lại, tính bảo mật của RSA dựa trên độ khó rõ ràng trong việc tínhtoán với những số lớn Nghiên cứu về phép nhân tử hóa đã có từ thời kỳ HyLạp cổ đại nhưng nó chỉ dành cho máy tính khi mà mọi người bắt đầu pháttriển những thuật toán có khả năng phân tích những số lớn Nghịch lý RSA là

để khiến RSA hoạt động hiệu quả hơn, chúng ta muốn dùng modun N = pq

càng nhỏ càng tốt Mặt khác, nếu nếu đối phương có thể có phân tích N thìthông tin được mã hóa của chúng ta sẽ không còn bảo mật Do vậy rất quantrọng khi hiểu được khó khăn như thế nào để phân tích những số lớn, và đặcbiệt là để hiểu được tiềm năng của những thuật toán khác nhau mà hiện nayđược dùng để phân tích thừa số

Trong vài phần tiếp theo chúng ta sẽ thảo luận một cách chi tiết hơn về một

số phương pháp được biết đến để phân tích những số nguyên lớn

Trang 21

Chúng ta bắt đầu với thuật toán có tên gọi phương pháp Pollard p − 1 Mặc

dù phương pháp này không có ích với mọi số nhưng vẫn có vài số mà chắc chắn

nó có hiệu quả Phương pháp của Pollard chứng minh rằng có những modunRSA không an toàn mà thoạt nhìn có vẻ là bảo mậ

Chúng ta đang xét số N = pq và nhiệm vụ là xác định các số nguyên tố p

và q Giả sử ta tìm ra số nguyên L có tính chất

p − 1 chia hết L và q − 1 không chia hết L

Điều này có nghĩa là có vài số nguyên i, j và k với k 6= 0 thỏa mãn

p chia hết aL − 1và q − 1không chia hết aL − 1

Từ đây ta có thể khôi phục p qua phép tính UCLN đơn giản

p = UCLN(aL − 1, N)

Đây là một cách tối ưu nhưng trong đó ta có thể hỏi, liệu ta có thể tìm được số

mũ L mà chia hết cho p − 1 và không chia hết cho q − 1? Quan sát của Pollard

là nếu p − 1 là tích của những số nguyên tố nhỏ thì nó sẽ chia hết cho n! với vàigiá trị không quá lớn của n Vì vậy đây coi là ý tưởng Với mỗi số n = 2, 3, 4

ta chọn một giá trị a và tính

UCLN(an! − 1, N)

(Để đơn giản ta có thể lấy a = 2) Nếu UCLN bằng 1thì ta tiếp tục giá trị tiếptheo của n Nếu UCLN bằng N thì ta thật không may mắn, nhưng một giá trị

a khác có thể sẽ đúng Và nếu ta lấy số nằm trong khoảng từ 1 đến N thì ta

có thừa số không tầm thường của N và ta sẽ thực hiện được

Trang 22

Nhận xét 1.4.1 Có hai nhận xét quan trọng cần làm trước khi chúng ta đưa ýtưởng của Pollard vào thực hành Vấn đề đầu tiên liên quan đến giá trị an!− 1.

Thậm chí với a = 2 và với những giá trị trung bình của n, cho n = 100 và sẽkhông khả thi để tính chính xác được an! − 1 Thực chất, số 2100! có hơn 10157

chữ số, con số mà lớn hơn số lượng các hạt cơ bản trong vũ trụ được biết đến!May mắn là không cần phải tính toán nó một cách chính xác Chúng ta chỉquan tâm đến UCLN của an!− 1 và N, vì vậy chỉ cần thoản mãn việc tính

Điều này dẫn đến thuật toán được trình bày ở Bảng 1.3

Đưa vào Số nguyên N để phân tích

1 Đặt a = 2 (hoặc một số giá trị khác thuận tiện)

2 Vòng lặp j = 2, 3, 4, lên đến một giới hạn nhất định

3 Đặt a = aj mod n

4 Tính d = UCLN(a − 1, N)†

5 Nếu 1 < d < N thì thành công, trả lại d

6 Tăng dần j và lặp lại từ Bước 2

† Để hiệu quả hơn chọn k thích hợp và tính UCLN trong

Bước 4 chỉ có mỗi lần lặp thứ k

Bảng 1.3: Thuật toán phân tích thừa số Pollard p − 1

Ví dụ 1.4.2 Ta sử dụng phương pháp Pollard p − 1 cho N = 13927189 Bắt

Trang 23

đầu với UCLN(29!− 1, N) và lấy giai thừa lớn dần ở số mũ, chúng ta thấy rằng

Dòng cuối cùng cho ta một thừa số không tầm thường p = 3823 của N Thừa

số này là số nguyên tố, và thừa số q = N/p = 13927189/3823 = 3643 cũng là

số nguyên tố Lý do số mũ 14! được làm trong ví dụ này là thừa số p − 1 phântích được thành tích của các số nguyên tố nhỏ,

Vì vậy, sử dụng 253! − 1 ta được kết quả thừa số nguyên tố p = 350437 của N,

và thừa số (nguyên tố) khác là 480661.Tất nhiên, p − 1 là tích của các thừa sốnhỏ,

p − 1 = 350436 = 22 · 3 · 19 · 29 · 53

Ngày đăng: 02/11/2015, 09:30

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Thành lập khóa RSA, mã hóa và giải mã - Phân tích thừa số nguyên tố và ứng dụng trong mật mã
Bảng 1.1 Thành lập khóa RSA, mã hóa và giải mã (Trang 11)
Bảng 1.2: Kiểm tra Miller–Rabin cho hợp số - Phân tích thừa số nguyên tố và ứng dụng trong mật mã
Bảng 1.2 Kiểm tra Miller–Rabin cho hợp số (Trang 18)
Bảng 1.3: Thuật toán phân tích thừa số Pollard p − 1 - Phân tích thừa số nguyên tố và ứng dụng trong mật mã
Bảng 1.3 Thuật toán phân tích thừa số Pollard p − 1 (Trang 22)
Bảng 1.6: phân tích thừa số N = 9788111 - Phân tích thừa số nguyên tố và ứng dụng trong mật mã
Bảng 1.6 phân tích thừa số N = 9788111 (Trang 33)
Hình 2.1: Sàng N = 221 sử dụng số nguyên tố B = 11 - Phân tích thừa số nguyên tố và ứng dụng trong mật mã
Hình 2.1 Sàng N = 221 sử dụng số nguyên tố B = 11 (Trang 42)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w