Kiểm tra số giả nguyên tố Euler

Một phần của tài liệu Về một số loại số giả nguyên tố (Trang 52)

12 11 k k k n

2.4.7. Kiểm tra số giả nguyên tố Euler

Ta biết rằng số giả nguyên tố Euler cơ sở b là một hợp số n sao cho lũy thừa bậc ( 1)

2

n

của b theo module n đem lại giá trị đúng bằng jacobi (b, n). Cho nên, để biết số n có là số giả nguyên tố Euler cơ sở b hay không ta chỉ cần thực hiện các bước sau.

Kiểm tra xem n có phải là hợp số không bằng lệnh:

[> isprime (n);

Rồi tính kí hiệu Jacobi theo lệnh:

[> J:=jacobi (b , n);

và sau cùng kiểm tra điều kiện:

[> is (b^& ( (n – 1) / 2) mod n = J) ;

Nếu kết quả cho cho ra true thì ta nói n có là số giả nguyên tố Euler cơ sở b,

còn ngược lại thì không.

Ví dụ. [> isprime (1105); false [> J:=jacobi (2 , 1105); J= :1 [> is (b^& ( (1105 – 1) / 2) mod 1105 = J) ; true

Ta có thể lập quy trình để kiểm tra xem số 11111 có thể là số giả nguyên tố Euler theo một cơ sở b nào đó, ví dụ b=2, hay không qua các lệnh sau:

[> n:=11111; b:=2; n:= 11111 b:= 2 [> isprime (n); false [> J:=jacobi (b , n); J= :1 [> is (b^& ( (n – 1) / 2) mod n = J) ; false

Tương tự như vậy, ta dễ dàng gán cho b tất cả các giá trị từ 3 đến 9 ta thấy rằng số 11111 không phải là số giả nguyên tố Euler theo bất kì cơ sở b

nào trong khoảng từ 2 cho đến 9. May thay với b=10 ta được kết quả số 11111 là mộtsố giả nguyên tố Euler cơ sở 10. Thật vậy, ta có

[> n:=11111; b:=10; n:= 11111 b:= 10 [> isprime (n); false [> J:=jacobi (b , n); J= :1 [> is (b^& ( (n – 1) / 2) mod n = J) ; true

Như vậy, việc tìm tìm được một số giả nguyên tố Euler không phải là chuyên dễ. Ta cũng biết rằng một số giả nguyên tố Euler thì sẽ là một số giả nguyên tố (theo cùng cơ sở). Thật vậy, ta kiểm định lại điều này qua lệnh:

[> is (10&^11111 - 10 mod 11111 = 0) ;

true

Ta cũng biết rằng một số là số giả nguyên tố Euler thì không chắc là giả nguyên tố mạnh. Tuy nhiên, ở đây ta gặp điều may mắn là 11111 không những là một số giả nguyên tố Euler cơ sở 10 mà còn là một số giả nguyên tố mạnh cơ sở 10. Thật vậy: [> n:=11111; b:=10; n:= 11111 b:= 10 [> ifactor(n -1); 2.5.11.101 [> s:=1; t:=3*5*11*101; s:= 1 b:= 16665 [> is(b&^t mod n = 1); true

Tuy nhiên, số 11111 không còn là số giả nguyên tố mạnh với các cơ sở tiếp theo, như: 11, 12, 13, 14.

KẾT LUẬN

Việc tìm hiểu về số nguyên tố, số giả nguyên tố, số nguyên tố xác suất đã được nhiều nhà toán học trong nước và trên thế giới đặc biệt quan tâm, bởi vai trò cũng như các ứng dụng ngày càng quan trọng của chúng trong nhiều

lĩnh vực có ứng dụng công cụ toán - tin học như: mật mã, thẻ ATM, chữ ký điện tử, thông tin, truyền thông….

Kiểm tra tính nguyên tố (primality test) là bài toán kiểm tra xem một số tự nhiên n có phải là số nguyên tố hay không? Bài toán này đặc biệt trở nên quan trọng khi các hệ mật mã khoá công khai ra đời. Liên hệ với bài toán trên, kiểm tra một số nguyên cho trước có phải là số giả nguyên tố hay không (pseudoprimality test) cũng có rất nhiều ứng dụng trong thực tiễn

Vì vậy, luận văn tập trung giới thiệu các kết quả về: số nguyên tố; số giả nguyên tố; kiểm tra nguyên tố; kiểm tra giả nguyên tố; phân bố số nguyên tố và số giả nguyên tố; một số thuật toán và ứng dụng của số nguyên tố và số giả nguyên tố; kiểm tra số giả nguyên tố trên phần mềm Maple.

Luận văn có thể tiếp tục theo hướng tìm hiểu sâu các ứng dụng của số nguyên tố và số giả nguyên tố trong lĩnh vực mã hoá thông tin.

Một phần của tài liệu Về một số loại số giả nguyên tố (Trang 52)

Tải bản đầy đủ (DOC)

(57 trang)
w