6.4.1 Giới thiệu
Nếu thuật toán kiểm tra tính nguyên tố trả về kết quả sai thì hệ mã hóa RSA có thể không còn an toàn hoặc sẽ không hoạt động đúng. Có rất nhiều thuật toán được đề xuất với tốc độ và độ chính xác khác nhau nhằm xác định một số nguyên cho trước có phải là số nguyên tố hay không. Các thuật toán này được chia làm hai nhóm:
Nhóm các thuật toán kiểm tra tính nguyên tố theo xác suất: nghĩa kết luận có thể sai nhưng với xác suất rất thấp. Các số nguyên vượt qua các kiểm tra bằng cách này được gọi là số nguyên tố xác suất (probable prime) hay số giả nguyên tố mạnh (strong-pseudo prime).
Nhóm các thuật toán kiểm tra tính nguyên tố “thật sự”: nghĩa là có thể chứng minh được nó là số nguyên tố nên còn được gọi là thuật toán chứng minh tính nguyên tố. Các số nguyên vượt qua các kiểm tra bằng cách này được gọi là số nguyên tố (provable prime).
Một thuật toán nổi tiếng trong nhóm các thuật toán kiểm tra tính nguyên tố “thật sự” là thuật toán AKS. Thuật toán này có độ phức tạp đa thức, được phát triển bởi ba tác giả Manindra Agrawal, Neeraj Kayal và Nitin Saxena, tại Viện công nghệ Kanpur – Ấn Độ, vào tháng 8 năm 2002 [4]. Tuy nhiên, thuật toán chưa chứng tỏ được tính hiệu quả rõ rệt trong tính toán thực tiễn do bậc đa thức khá cao, khoảng 𝑂(𝑙𝑜𝑔12𝑛)
nhưng lại có ý nghĩa lớn về mặt lý thuyết vì vấn đề này đã thu hút sự quan tâm nghiên cứu của nhiều người trong một thời gian dài. Trên thực tế, những thuật toán kiểm tra tính nguyên tố theo xác suất thường được sử dụng vì đơn giản và chi phí tính toán ít hơn rất nhiều so với các thuật toán kiểm tra tính nguyên tố thật sự. Mặt khác, các thuật toán này tuy có khả năng kết luận sai nhưng với xác suất cực kỳ thấp, có thể xem là không thể xảy ra. Vì vậy, trong đề tài này chỉ tập trung nghiên cứu và phân tích các thuật toán kiểm tra tính nguyên tố theo xác suất.