Một số hệ thống mã hĩa khĩa cơng cộng
6.2.5 Thuật tốn Miller-Rabin
Trên thực tế, việc kiểm tra một số nguyên dương n là số nguyên tố thường áp dụng các phương pháp thuộc nhĩm thuật tốn Monte Carlo, ví dụ như thuật tốn Solovay-Strassen hay thuật tốn Miller-Robin; trong đĩ, thuật tốn Miller-Robin thường được sử dụng phổ biến hơn. Các thuật tốn này đều cĩ ưu điểm là xử lý nhanh chĩng (số nguyên dương n cĩ thểđược kiểm tra trong thời gian tỉ lệ với log2n, tức là số lượng các bit trong biểu diễn nhị phân của n) nhưng vẫn cĩ khả
năng là kết luận của thuật tốn khơng hồn tồn chính xác, nghĩa là cĩ khả năng một hợp sốn lại được kết luận là số nguyên tố, mặc dù xác suất xảy ra kết luận khơng chính xác là khơng cao. Tuy nhiên, vấn đề này cĩ thểđược khắc phục bằng cách thực hiện thuật tốn một số lần đủ lớn, ta cĩ thể làm giảm khả năng xảy ra kết luận sai xuống dưới một ngưỡng cho phép và khi đĩ, xem như kết luận cĩ độ tin cậy rất cao.
Định nghĩa 6.1: Thuật tốn thuộc nhĩm Monte Carlo được sử dụng trong việc khẳng định hay phủđịnh một vấn đề nào đĩ. Thuật tốn luơn đưa ra câu trả lời và câu trả lời thu được chỉ cĩ khả năng hoặc là “Cĩ” (yes) hoặc là “Khơng” (no).
Định nghĩa 6.2: Thuật tốn “yes-biased Monte Carlo” là thuật tốn Monte Carlo, trong đĩ, câu trả lời “Cĩ” (Yes) luơn chính xác nhưng câu trả lời “Khơng” (No) cĩ thể khơng chính xác.
Thuật tốn 6.5. Thuật tốn Miller-Rabin
Phân tích số nguyên dương p dưới dạng n = 2km + 1 với m lẻ
Chọn ngẫu nhiên số nguyên dương a ∈ {1, 2, ..., n-1} Tính b = am mod p ifb ≡ 1 (mod p) then Kết luận “p là số nguyên tố” và dừng thuật tốn end if fori = 0 tok− 1 ifb ≡p − 1 (mod p) then Kết luận “p là số nguyên tố” và dừng thuật tốn else b = b2 mod p end if end for Kết luận “p là hợp số”
Thuật tốn Miller-Rabin là thuật tốn “yes-biased Monte Carlo” đối với vị từ “số
nguyên dương n là hợp số”. Xác suất xảy ra kết luận sai, nghĩa là thuật tốn đưa ra kết luận “n là số nguyên tố” khi n thật sự là hợp số, chỉ tối đa là 25%. Nếu áp dụng thuật tốn k lần với các giá trịa khác nhau mà ta vẫn thu được kết luận “n là số nguyên tố” thì xác suất chính xác của kết luận này là 1
4 1
1− →