Computer >> Máy Tính >  >> Lập trình >> Lập trình

Quy trình của Thử nghiệm nguyên sinh Miller-Rabin là gì?

Phép thử Miller-Rabin Permality kết hợp phép thử Fermat và phép thử gốc Fermat theo phương pháp cổ điển để tìm ra một giả thuyết mạnh. Trong bài kiểm tra này, nó có thể viết n - 1 dưới dạng tích của một số lẻ m và lũy thừa của 2:

$$ \ mathrm {n-1 =m \, x \, 2 ^ {k}} $$

Kiểm tra Fermat trong cơ sở a có thể được cấu tạo như sau:

$$ \ mathrm {a ^ {n-1} \, =\, a ^ {m \, x \, 2k} =\ left [a ^ {m} \ right] ^ {2k} =\ left [a ^ {m} \ right] \ frac {2 ^ {2} \ cdot \ cdot \ cdot 2} {K \, times}} $$

Nói cách khác, thay vì tính toán n − 1 (mod n) trong một bước, nó có thể thực hiện trong k + lần 1. Ưu điểm của việc sử dụng k + 1 là mỗi bước trong bước căn bậc hai có thể được thực hiện. Nếu thử nghiệm căn bậc hai không thành công, nó có thể dừng lại và khai báo n là số tổng hợp.

Trong mỗi bước, nó có thể cung cấp rằng bài kiểm tra Fermat được vượt qua và bài kiểm tra căn bậc hai được thỏa mãn giữa tất cả nhóm các bước liền kề, nếu có thể truy cập được (nếu kết quả là 1).

Khởi tạo

  • Nó có thể chọn một cơ số a và tính toán $ \ mathrm {T \, =\, a ^ {m}} $, trong đó $ \ mathrm {m \, =\, \ frac {n-1} {2 ^ {k }}} $

  • Nếu T là + 1 hoặc -1 khai báo rằng n là giả mạnh và dừng lại. Bởi vì nếu T là + -1, T sẽ trở thành 1 trong bước tiếp theo và vẫn là 1 cho đến khi vượt qua Fermattest. Hơn nữa, T đã vượt qua bài kiểm tra căn bậc hai vì T có thể là 1 ở bước tiếp theo và căn bậc hai của 1 (ở bước tiếp theo) là + -1.

  • Nếu T là bất kỳ thứ gì khác, không chắc n là số nguyên tố hay hợp số, vì vậy nó có thể tiếp tục bước tiếp theo.

Bước 1 :Chúng tôi vuông T

  • Nếu kết quả là +1, chắc chắn rằng bài kiểm tra Fermat sẽ được thông qua vì T vẫn là 1 cho các bài kiểm tra tiếp theo. Thử nghiệm căn bậc hai đã không vượt qua. Bởi vì T là 1 trong bước này và là một cái gì đó khác với + -1 trong bước trước đó, nó có thể khai báo n là hỗn hợp và dừng lại.

  • Nếu kết quả là -1, nó có thể hiểu rằng n cuối cùng sẽ vượt qua bài kiểm tra Fermat, cũng có thể hiểu rằng nó sẽ vượt qua bài kiểm tra căn bậc hai vì T là -1 trong bước này và trở thành 1 trong bước tiếp theo. Nó có thể khai báo n là strongpseudoprime và dừng lại.

  • Nếu T là bất cứ điều gì khác, nó không chắc chắn liệu nó có thể làm được hoặc không có một số nguyên tố. Tiếp tục đến bước tiếp theo.

Bước 2 đến Bước K - 1:

Bước này và tất cả các bước sau tiếp tục tiếp tục cho đến bước 2 và cho đến bước K -1 tương tự như bước 1.

Bước K:

Bước này không bắt buộc. Nếu nó có thể đã đạt đến bước này và nó không tạo ra quyết định, thì bước này sẽ không cung cấp cho chúng tôi. Nếu kết quả của bước này là 1, thử nghiệm Fermat được chấp nhận, nhưng vì kết quả của bước trước đó không phải là + -1, nên không chấp nhận thử nghiệm căn bậc hai. Sau bước k -1, nếu nó vẫn chưa dừng lại, nó có thể khai báo rằng n iscomposite. Bài kiểm tra Miller-Rabin bắt buộc từ bước 0 đến bước K-1.