Phương pháp phân tích bằng sàng trường số

Một phần của tài liệu Một Số Thuật Toán Phân Tích Số Nguyên Hiện Đại Và Ứng Dụng (Trang 28 - 30)

Đây là phương pháp phân tích số lớn được xem là mạnh nhất trong thời gian gần đây, đặc biệt là khi n có trên 110 chữ số thập phân, tức là n>10110, và ước bé nhất của nó có trên 48 chữ số (chính là những số hay được dùng trong RSA hiện nay). Các bước chuẩn bị cho thực hiện thuật toán này như sau. • Lấy số tự nhiênd ≈ q log(n) log log(n) vàm=b√d nc.

• Khai triển sốntheo cơ số m,

n=md+ad−1md−1+· · ·+a0 0≤ai<m.

• Đa thức tương ứng với khai triển này là

f(x) =xd+ad−1xd−1+· · ·+a0.

• Lấyαlà một nghiệm của đa thức nêu trên và xét trường mở rộngQ[α].

Để cho dễ hình dung quy trình thực hiện thuật toán, ta xét một ví dụ cụ thể là phân tích sốn=2501. Ta có d=2, vì s log(2501) log log(2501) ≈1.950217066, m=j√ 2501 k =50.

Do 2501=502+1, nên ta có đa thức tương ứng là f(x) =x2+1. Đa thức này có nghiệm làicho nên ta sẽ xem xét trường mở rộng trườngQ[i].

Ta để ý rằng trong vành Z/2510Z phần tử 50 có vai trò giống như là i, vì 502 ≡ −1 mod 2501. Điều này đưa ta đến việc thiết lập ánh xạ

h: Z[i]→Z, từ tập các số nguyên đại số Z[i] vào tập các số nguyên thông thường, theo công thứch(a+bi) =a+b·50,và khi ấy ta có đẳng thức sau

h(α β) ≡h(α)h(β) mod 2501 với mọiα,β ∈Z[i].

Nhắc lại rằng ta gọi một số nguyên là mịn (hay là “vụn”) nếu như nó

phân tích được thành tích của các số nguyên tố nhỏ. Mục tiêu trước mắt của chúng ta là tìm các số nguyên đại số mịn trong Z[i], mà ảnh của nó (trong phép ánh xạ h) cũng là mịn trong Z (nói chung, việc tìm những số này là vô cùng khó khăn cho nên ta hiểu vì sao cho đến nay RSA vẫn được xem là có độ an toàn cao).

Ta ký hiệu những số như vậy là αi, và ta muốn tìm một tập con của chúng, mà ta sẽ đánh số làα1,α2,· · ·,αr, sao cho tích của chúng là một số “chính phương” trongZ[i] (nghĩa là, α1α2· · ·αr =β2 ∈Z[i]), còn tích các ảnh của chúng lại là một số chính phương thông thường, tức là

h(α1)h(α2)· · ·h(αr) =t2∈ Z.

Nếu có được những số này, ta sẽ phân tích được sốntheo nhận xét sau đây. Do

[h(β)]2=h(β)h(β) =h(β2) =h(α1.α2· · ·αr) =h(α1)h(α2)· · ·h(αr) =t2. nên sau khi rút gọn h(β) và t theo modulo n ta sẽ được hai số h(ˆ β) và tˆ

thoả mãn đẳng thức

h(ˆ β)2

và suy ra

ˆ

h(β)−tˆ h(ˆ β) +tˆ

≡0 modn. (2.2)

Nếu h(ˆ β) không đồng dư với ±tˆ theo modulo n, thì từ đẳng thức trên ta suy ra mỗi thừa số ở vế trái sẽ chứa một ước số của n, hay nói cách khác

gcd ˆh(β)−tˆ,n

cho ta một ước (không tầm thường) của sốn.

Tóm lại, bài toán trở thành việc đi tìm các số nguyên đại sốα1,α2,· · ·,αr

sao cho biểu thức (2.1) được thoả mãn.

Một phần của tài liệu Một Số Thuật Toán Phân Tích Số Nguyên Hiện Đại Và Ứng Dụng (Trang 28 - 30)