Khác với Berlekamp là giải thuật tất định (deterministic), Cantor-Zassenhaus (theo
[34], trang 532-536) lại là giải thuật ngẫu nhiên (probabilistic). Ta giả định rằng đa thức cần phân tích là tích của các thừa số phân biệt nhau (square-free).
Quá trình phân tích đa thức thành các nhân tử bất khả quy được phân chia ra làm hai giai đoạn: giai đoạn đầu phân tích thành các nhân tử (
∏ ) sao cho mỗi đều là tích của các nhân tử bất khả quy có cùng bậc . Giai đoạn thứ hai phân tích các ra thành các nhân tử bất khả quy (bậc ). Giai đoạn này sử dụng phương pháp chọn lựa ngẫu nhiên. Chúng ta sử dụng giải thuật Cantor- Zassenhaus để phân tích đa thức tích , ; chứa các thừa số bất khả quy có cùng bậc nên chỉ cần thực hiện giai đoạn hai (theo giải thuật sẽ được trình bày bên dưới, giải thuật của giai đoạn đầu có tên gọi là Distinct Degree Factorization (DDF) sẽ được trình bày trong mục 2.2.4 tiếp theo sau). Trước tiên ta giới thiệu một số khái niệm cơ bản của đại số hiện đại sẽ được sử dụng trong giải thuật.
Giả sử có bậc là , có bậc nhỏ hơn , trong đó , .
Ký hiệu dùng để chỉ các đa thức sao cho , tức là các đa thức , .
Với mỗi / ta ký hiệu là đa thức sao cho ( là phần tử đại diện nhỏ nhất của lớp tương đương modulo ).
Giả sử ta cần phân tích đa thức chỉ chứa các nhân tử bất khả quy có cùng bậc ra thành các nhân tử bất khả quy: ∏ , trong đó mỗi đều có bậc là . Trước hết ta hãy xét trường hợp đặc biệt 2.
Theo định lý số dư Trung Hoa tồn tại đẳng cấu sau:
: …
, … , ,
Ta định nghĩa ∑ 2.2.3.1 . Giả sử , nếu , … , ta có:
, … , 2.2.3.2
Đặt (theo định nghĩa là đa thức có bậc nhỏ hơn sao cho ), khi ấy gcd , chính là tích của các nhân tử của có
0.
Giải thuật phân tích hoàn toàn thành các nhân tử được thực hiện qua nhiều giai đoạn. Ở mỗi giai đoạn chúng ta có kết quả là sự phân tích một phần của , tức là
∏ . Ban đầu tập . Ở mỗi bước chúng ta sẽ cố gắng tách mỗi thành tích của hai thừa số. Nếu thành công, chúng ta thay bởi hai thừa số thành phần. Quá trình trên cứ tiếp tục cho đến khi chứa đủ số nhân tử của (| | , trong đó
/ ).
Giải thuật phân tích này có tên gọi là EDF (Equal Degree Factorization) (theo [34], trang 533) như được mô tả ở trang kế.
Giải thuật EDF
Input: Đa thức (bậc ) cần phân tích chứa các thừa số bất khả quy cùng bậc Output: Các thừa số bất khả quy của
/ while| | do for each do chọn ngẫu nhiên / gcd , if 1or else , / end if end for end while return
Trường hợp 2 (do đó lẻ) chỉ khác biệt ở chỗ định nghĩa biểu thức : / 1 2.2.3.3
Giả sử , , … , , ta có:
, … , 2.2.3.4
Do mỗi đều là nhóm cyclic bậc 1 nên ta có 1, do đó / √1= 1. Tức là chỉ có thể nhận giá trị 1 hoặc -1.
Đặt ta có gcd , là tích của các nhân tử của sao cho
0. Ngoài việc thay đổi định nghĩa của biểu thức giải thuật EDF trong trường hợp này không có gì khác biệt so với trường hợp đã xét ở trên.
Độ phức tạp của toàn bộ giải thuật Cantor-Zassenhaus là .