Phân tích sử dụng liên phân số

Một phần của tài liệu Luận văn: MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT MÃ docx (Trang 42 - 45)

2 Một số ứng dụng của số học trong lý thuyết mật mã

2.3.2Phân tích sử dụng liên phân số

Thuật toán thứ nhất

Xuất phát từ ý tưởng của phương pháp Fecmat suy dùng cơ sở là với n nguyên dương, cần tìm hai số nguyênbvàcsao cho b2 ≡ c2 (mod n). Theo định lý (1.3.2.1) Chương I, ta có:

b2k −nqk2 = (−1)k+1Qk+1

Suy ra b2k ≡ (−1)k+1Qk+1 (mod n).

Do đó, nếu tìm được Qk+1 với chỉ số chẵn và là một số chính phương c2 thì

b2 ≡ c2 (mod n). Khi đó (bk + c)(bk −c)... n. Như vậy, các ước số chung lớn nhất d1 = (bk +c, n) và d2 = (bk −c, n) có nhiều khả năng là các ước không tầm thường của n ( Cũng có thể xảy ra trường hợp không phân tích được n, vì các số bk +c, bk −c không nhất thiết bé hơn n).

Bằng cách sử dụng phân số liên tục, ta có: Q1 = 37, Q2 = 1, b1 = 297 Suy ra 2972 −12 = (297 + 1)(297−1)≡ 0 (mod n) Ta tính (297−1, n) = 37; (297 + 1, n) = 149 Vậy n = 37.149 Ví dụ 2: Phân tích số n = 40003 Ta tính được: Q1 = 3, Q2 = 134, Q3 = 253, Q4 = 9 = 32.

Như vậy,b23 ≡ 32 (mod n), nhưng ta không thu được ước không tầm thường. Tính toán tiếp, ta được: Q64 = 81,

b63 = 15656849285514685583118479673478.

Bằng phương pháp đã mô tả tìm được các ước 367, 109. Vậy n= 367.109

Thuật toán thứ hai

Theo hệ quả (1.3.2.1) b2i (mod n)lấy theo thặng dư tuyệt đối bé nhất có giá trị tuyệt đối bé hơn 2√

n. Nên khả năng sẽ có nhiều bi sao cho b2i (mod n)

là tích các luỹ thừa nguyên tố nhỏ, từ đó ta có thuật toán:

1. Lấy ra một tập số nguyên tố từ −1 đến 29 làm cơ sở phân tích. ( Số -1 được tham gia để bao những số âm).

2. Lập biểu đồ tính:

.Tính Ck = [a0;a1, . . .] = bi

qi và tính b2i rồi phân tích theo cơ sở

.Khi nhận thấy có đủ nhiều số được phân tích ta chọn một tập con các số có tích là một số chính phương (tập lấy được là tập lấy theo bảng nhị phân có tổng từng cột số nhị phân là bằng 0 theo (mod 2))

3. Tính b2 ≡ c2 (mod n)

Kiểm tra b ≡ ±c (mod n) không?

. Nếu b ≡ ±c (mod n) thì quay lại bước 2 làm tiếp và tìm tập con khác.

. Nếu b 6≡ ±c (mod n) thì n= q.pvới

p = (b+c, n);q = (b−c, n). Ví dụ:

68779= [262, 3, 1, 7, 1, 1, 2, 1, 4, 3, 1, 1, 2, 3, 5, 1, 1, 2, ...]

Liên phân số Bình phương phân tích

[262]=262 2622 ≡ −135 −1.33.5 [262,3]=787/3 7872 ≡ 358 2.179 [262,3,1]=1049/4 10492 ≡ −63 −1.32.7 [262,..1,7]=8130/31 81302 ≡281 nguyên tố [262,..7,1]=9179/35 91792 ≡ −234 −1.2.32.13 [262,..1,1]=17309/66 173092 ≡ 157 nguyên tố 262,..1,2]=43797/167 437972 ≡ −322 −1.2.7.23 [262,..2,1]=61106/233 611062 ≡ 105 3.5.7

Dựa vào thuật toán ta nhân theo vế các hàng (1, 3, 8) ta có:

(262.1049.61106)2 ≡(1.33.5.7)2. Tính toán trực tiếp ta có

262.1049.61106 (mod 68779) = 945,1.33.5.7 (mod 68779) = 945. Như vậy ta lại quay lại bước 2 (adsbygoogle = window.adsbygoogle || []).push({});

Liên phân số Bình phương phân tích

[262,..1,4]=288221/1099 2882212 ≡ −138 −1.2.3.23 [262,..4,3]=925769/3530 9257692 ≡ 261 32.29 [262,..3,1]=1213990/4629 12139902 ≡ −239 nguyên tố [262,..1,1]=2139759/8159 21397592 ≡ 182 2.7.13 [262,..1,2]=5493508/20947 54935082 ≡ −147 −1.3.72 [262,..2,3]=18620283/71000 186202832 ≡89 nguyên tố 262,..3,5]=98594923/375947 985949232 ≡ −282 −1.2.3.47 [262,..5,1]=117215206/446947 1172152062 ≡225 32.52

Và đến đây ta nhân theo vế các hàng (1, 3, 5, 7, 8) cũ và hàng (1, 4, 5, 8) trên bảng mới ta thu được:

(262.1049.9179.43797.61106.288221.2139759.5493508.117215206)2

≡ (22.36.22.73.13.23)2 (mod n)

Bây giờ

Như vậy ta có p= gcd(19654−59221, n) = 109

và từ đây suy ra ngay q = n/109 = 631.

Một phần của tài liệu Luận văn: MỘT SỐ ỨNG DỤNG CỦA SỐ HỌC TRONG LÝ THUYẾT MẬT MÃ docx (Trang 42 - 45)