Tải bản đầy đủ (.doc) (16 trang)

Tài liệu Mật mã cổ điển- Chương 42 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (201.79 KB, 16 trang )

Hình 4.14. Phân tích modulus của rabin với một chương trình
con giải mã cho trước.
Bởi vậy giá trị x sẽ thu được ở bước 3. Tiếp theo xét bước 4. Nhận
thấy rằng x
1
2
= r
2
(mod n). Điều đó dẫn tới x
1
≡ ±r (mod n) hoặc x
1

±wr (mod n), trong đó w là một trong các căn bậc hai không tầm
thường của 1 modulo n. Trong trường hợp thứ hai ta có :
n(x
1
-r

)(x
1
+r)
song n không phải là ước của một thừa số nào ở vế phải. Bởi vậy,
việc tính UCLN(x
1
+r,n)(hoặc UCLN(x
1
-r, n)) phải dẫn tới hoặc p
hoặc q, và như vậy phép phân tích n được hoàn thành.
Ta sẽ tính xác suất thành công của thuật toán này trên tất cả
(n-1) phép chọn ngẫu nhiên r. Với hai thặng dư khác không r


1
và r
2
,
định nghĩa:
r
1
~ r
2
⇔ r
1
2
≡ r
2
2
(mod n)
Dễ dàng thấy rằng r ~ r với mọi r, r
1
~ r
2
cũng có nghĩa là r
2
~ r
1
;
r
1
~ r
2
và r

2
~ r
3
thì r
1
~ r
3
. Điều đó cho ta thấy rằng quan hệ ~ là một
quan hệ tương đương. Các lớp tương đương của Z
n
\{0} đều có bốn
phần tử, lớp tương đương chứa r là tập
[r] = {±r, ±wr (mod n)}
trong đó w là căn bậc hai không tầm thường của 1 modulo n.
1. Chọn một số ngẫu nhiên r , 1≤ r ≤ n-1
2. Tính y = r
2 -
B
2
/4 mod n
3. Gọi chương trình con A(y) để tìm bản giải
mã x
4. Tính x
1
= x+B/2
5. If x
1
≡ ± r (mod n) then quit (không thành
công)
Else UCLN(x

1
+r,n)=p hoặc q (thành
công)

×