Các phƣơng pháp phân tích thừa số Phƣơng pháp chia thử

Một phần của tài liệu Nghiên cứu tấn công RSA và xây dựng công cụ phân tích RSA (Trang 48 - 51)

1.1. Phƣơng pháp chia thử

Thực ra, đây là phương pháp vét cạn, thử mọi số dương lẻ nhỏ hơn 𝑛 xem có phải là ước số n. Trong thực tế, thay vì chia thử từ 2 đến 𝑛 , ta chỉ cần chia

thử các số 𝑝 có dạng: 6𝑘 ± 1 với 𝑘 ∈ ℤ+, 𝑝 ≤ 𝑛 như chứng mình trong mệnh đề sau.

Mệnh đề 1.1. Một số nguyên tố lẻ p > 3, có dạng 6𝑘 ± 1 với 𝑘 ∈ ℤ+.

Chứng minh. Mọi số nguyên đều có thể viết dưới dạng 6k, 6k + 1, 6k + 2, 6k +

3, 6k + 4, 6k + 5. Trong đó, 6k, 6k + 2, và 6k + 4 là các số chẵn; còn số 6k + 3 chia hết cho 3. Vậy nếu p > 3 là số nguyên tố thì p phải có dạng 6k + 1 hay 6k +

5  6k – 1.

Phương pháp này chỉ thích hợp khi 𝑛 có thừa số nguyên tố nhỏ.

1.2. Phƣơng pháp Rho - 𝝆

Phương pháp do Pollard công bố năm 1975. Ý tưởng của phương pháp này dựa trên thuật toán tìm chu trình của Floyd.

- Bài toán tìm chu trình: Giả sử có hàm bất kỳ 𝑓 ∶ 𝑆 → 𝑆, với 𝑆 là một tập hữu hạn. Lấy x0 là một phần tử bất kỳ của 𝑆, ta luôn có một dãy các số x0, x1,

36

x2,... xác định bởi xi+1 = f(xi) với mọi i ≥ 0. Vì S hữu hạn, do đó chắc chắn tờn

tại một chu trình.

- Ý tưởng thuật toán Floyd: Floyd nhận thấy với bất kỳ số nguyên i ≥ μ và k ≥

0, xi = xi + kλ, trong đó λ là chiều dài của chu trình được tìm thấy. Đặc biệt,

với i = kλ ≥ μ, thì ln có xi = x2i. Do đó, thuật tốn bắt đầu với cặp (x1, x2) và lần lượt tính cặp (xi, x2i) từ các cặp (xi-1, x2i-2) cho tới khi xi = x2i. Sau đó

thuật tốn sẽ lần lượt tìm giá trị được lặp lại đầu tiên xμ và chiều dài ngắn nhất của chu trình λ.

Phương pháp phân tích thừa số nguyên tố 𝜌 của Pollard áp dụng thuật toán Floyd trên dãy số x0, x1, x2 ,... với x0 = 2, xi+1 = f(xi) = xi2 +1 (mod p) với mọi i ≥ 0

để tìm xm ≡ x2m (mod p).

input: số nguyên 𝑛 cần phân tích. output: một thừa số nguyên tố của 𝑛

1. Set 𝑎 = 2, 𝑏 = 2 2. For 𝑖 = 1, 2, … do: 2.1 Tính 𝑎 = 𝑎2 + 1 (𝑚𝑜𝑑 𝑛), 𝑏 = 𝑏2 + 1 (𝑚𝑜𝑑 𝑛), 𝑏 = 𝑏2 + 1 (𝑚𝑜𝑑 𝑛) 2.2 Tính 𝑑 = 𝑔𝑐𝑑(𝑎 − 𝑏, 𝑛) 2.3 If 1 < 𝑑 < 𝑛 then return (𝑑) 2.4 If 𝑑 = 𝑛 then

Kết thúc mà khơng tìm được kết quả

Thuật tốn 1.2. Thuật tốn 𝝆 Pollard

Phương pháp phân tích thừa số nguyên tố 𝜌 của Pollard áp dụng thuật tốn Floyd với tập 𝑆 gờm 𝑝 phần tử chưa biết là ước của 𝑛, do đó tốc độ thuật tốn phụ thuộc vào 𝑝. Vì vậy phương pháp này chỉ dùng được với những số 𝑛 có thừa số nguyên tố nhỏ.

1.3. Phƣơng pháp 𝒑 − 𝟏

Phương pháp 𝑝 − 1, cũng của Pollard dựa vào định lý Fermat nhỏ và khái niệm thừa số trơn - smooth.

37

- Định lý Fermat nhỏ: Nếu 𝑔𝑐𝑑(𝑎, 𝑝) = 1 thì 𝑎𝑝−1 ≡ 1 (𝑚𝑜𝑑 𝑝)

- Khái niệm smooth: Gọi 𝐵 là một số dương bất kỳ, khi đó số nguyên 𝑄 được

gọi là B-smooth nếu tất cả các thừa số nguyên tố của 𝑄 nhỏ hơn hoặc bằng 𝐵.

Ý tưởng của phương pháp 𝑝 − 1 là chọn một giá trị 𝐵 làm biên để xét tính smooth. Tính giá trị 𝑄 là bội chung nhỏ nhất của tất cả các lũy thừa cơ số nguyên tố nhỏ hơn 𝐵 mà chưa vượt quá n. Do đó: 𝑄 = 𝑞≤𝐵𝑞 ln 𝑛/ ln 𝑞 (vì 𝑞𝑙 ≤ 𝑛 → 𝑙 ln 𝑞 ≤ ln 𝑛 → 𝑙 ≤ ln 𝑛

ln 𝑞 ). Nếu 𝑝 là một thừa số nguyên tố của 𝑛 mà 𝑝 − 1 là một số B-smooth thì 𝑝 − 1|𝑄, nên theo định lý Fermat nhỏ ta có 𝑎𝑄 ≡ 1 (𝑚𝑜𝑑 𝑝). Do đó nếu 𝑑 = 𝑔𝑐𝑑(𝑎𝑄 − 1, 𝑛) thì 𝑝|𝑑.

Input: số 𝑛 cần phân tích.

Output: thừa số nguyên tố 𝑑 của 𝑛.

1. Chọn ngưỡng smooth 𝐵.

2. Chọn số nguyên ngẫu nhiên 𝑎, 2 ≤ 𝑎 ≤ 𝑛 − 1, và tính 𝑑 = 𝑔𝑐𝑑(𝑎, 𝑛).

If 𝑑 ≥ 2 then

Return 𝑑

3. Với mọi snt 𝑞 ≤ 𝐵 do: 3.1 Tính = ln 𝑛ln 𝑞 .

3.2 Tính 𝑎 ← 𝑎𝑞𝑙 (𝑚𝑜𝑑 𝑛) 4. Tính 𝑑 = 𝑔𝑐𝑑(𝑎 − 1, 𝑛) 5. If 𝑑 = 1 or 𝑑 = 𝑛 then

Kết thúc mà không tìm được kết quả Else

return 𝑑

Thuật toán 1.3. Thuật toán p - 1 của Pollard

Phương pháp 𝑝 − 1 của Pollard dựa trên sự kiện 𝑝 − 1 là một số 𝐵-smooth. Phương pháp này chỉ dùng được với những số 𝑛 có thừa số nguyên tố 𝑝 là một số 𝐵-smooth.

38

1.4. Phƣơng pháp đƣờng cong Elliptic (ECM – Elliptic Curve Method)

Phương pháp 𝑝 − 1 của Pollard thành công khi 𝑝 − 1 là một số B-smooth với 𝑝 là một thừa số nguyên tố của 𝑛. Từ nhận xét 𝑝 − 1 cũng là cấp của nhóm ℤ𝑝∗, phương pháp đường cong elliptic tổng quát hoá thuật toán 𝑝 − 1 bằng cách thay nhóm ℤ𝑝∗ bằng một nhóm đường cong elliptic bất kỳ trên ℤ𝑝. Nếu cấp của nhóm được chọn smooth trong phạm vi 𝐵 thì khả năng cho kết quả là rất cao, ngược lại thì chọn một nhóm đường cong Elliptic khác.

Mặc dù phương pháp đường cong Elliptic khá mạnh, tuy nhiên nó vẫn thuộc nhóm các phương pháp phân tích đặc biệt, nghĩa là chỉ phân tích những số có dạng đặc biệt, nên khơng thể giải quyết bài tốn một cách tổng quát.

Một phần của tài liệu Nghiên cứu tấn công RSA và xây dựng công cụ phân tích RSA (Trang 48 - 51)

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

(113 trang)