Thuật toán Fermat

Một phần của tài liệu Nghiên cứu và phát triển hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu và xác thực các giao dịch điện tử (Trang 35)

Thuật toán Fermat là kiểm tra xác suất dựa trên định lý Fermat nhỏ (Fermat’s Little Theorem). Định lý đƣợc phát biểu nhƣ sau:

Định lý 2.3.1 (Định lý Fermat): Nếu p là số nguyên tố và a là số không chia hết

cho p thì:

ap-1 = 1 (mod p)

Hệ quả 2.3.1 : Nếu p là số nguyên tố và a là số nguyên dương thì:

Ví dụ: a = 2, 23-1 = 4 = 1 mod 3 24-1 = 8 = 0 mod 4 25-1 = 16 = 1 mod 5 26-1 = 32 = 2 mod 6 27-1 = 64 = 1 mod 7 28-1 = 128 = 0 mod 8 29-1 = 256 = 4 mod 9

Kết quả trên xác nhận khi p là số nguyên tố, thì 2p-1 = 1 mod p, và cũng cho một phỏng đoán rằng p không phải là số nguyên tố, thì 2p-11 mod p. Tuy nhiên phỏng đoán này lại không đúng, chẳng hạn nhƣ: n = 341 = 11 x 31 không phải là số nguyên tố, nhƣng nó vẫn thoả mãn 2341-1 = 1 mod 341. Do vậy định lý Fermat với a = 2 có thể đƣợc sử dụng kiểm tra một số là hợp số nhƣng không thể dùng để kiểm tra một số chắc chắn là số nguyên tố. Các số mà thoả mãn định lý Fermat mà không phải là số nguyên tố gọi là số giả nguyên tố và đƣợc định nghĩa một cách nhƣ sau:

Định nghĩa 2.3.1 : Một số giả nguyên tố cơ sở a là một hợp số nguyên n thoả mãn

công thức an-1 = 1 mod n.

Nếu số giả nguyên tố cơ sở a không tồn tại, thì định lý Fermat cho một cách rất đơn giản để kiểm tra số nguyên tố: một số n là số nguyên tố nếu và chỉ nếu an-1 =1 mod n.

Đáng tiếc số giả nguyên tố cơ sở a lại tồn tại với mọi cơ sở, vì vậy định lý Fermat chỉ cho một cách kiểm tra thiên về hợp số. Thuật toán nhƣ sau:

Nếu một số vƣợt qua kiểm tra số giả nguyên tố với vài cơ sở thì khả năng nó là số nguyên tố khá chắc chắn (vẫn có một xác suất nào đó).

Thuật toán Fermat đƣợc xây dựng trên cơ sở thuật toán kiểm tra thiên về hợp số ở trên. Nó sẽ kiểm tra một số n là giả nguyên tố với k cơ sở đƣợc chọn một cách ngẫu nhiên và kết luận là một số nguyên tố với xác suất nào đó nếu và chỉ nếu nó vƣợt qua k kiểm tra. Thuật toán nhƣ sau:

Thuật toán pseudoprime có độ phức tạp thời gian là O(logn). Thuật toán kiểm tra Fermat thực hiện thuật toán pseudoprime k lần vì vậy độ phức tạp thời gian O(k . logn)

hay O(k . s). Do vậy nó là thuật toán xác suất kiểm tra số nguyên tố rất hiệu quả.

Một phần của tài liệu Nghiên cứu và phát triển hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu và xác thực các giao dịch điện tử (Trang 35)