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

Mật mã hóa Chuong42

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 (116.98 KB, 15 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)
Trong thuật toán đợc trình bày ở hình 4.14, hai giá trị r bất kỳ
trong cùng một lớp tơng đơng sẽ dẫn tới cùng một giá trị y. Bây giờ
xét giá trị x thu đợc từ chơng trình con A khi đã biết y. Ta có:
[y]={y, wy}
Nếu r=y thì thuật toán không thành công; trong khi nếu r=wy thì
thuật toán sẽ thành công. Vì r đợc chọn ngẫu nhiên, nên một giá trị bất
kỳ trong bốn giá trị có thể đều cùng khả năng. Ta kết luận rằng xác
suất thành công của thuật toán là 1/2.
Điều thú vị là hệ mật rabin là an toàn đối với phơng pháp tấn
công bản rõ chọn lọc, mhmg hệ này lại hoàn toàn không an toànđối
với phơng pháp tấn công bảm mã chọn lọc. Thuật toán ở hình 4.14,
phần dùng để chứng minh sự an toàn đối với phép tấn công bản rõ
chọn lọc cũng có thể đợc dùng để phá hệ mật Rabin khi thực hiện tấn
công bản mã chọn lọc!. Trong phơng pháp tấn công bản mã chọn lọc,
chơng trình con A đợc thay bằng thuật toán giải mã của Bob.
4.8. Các thuật toán phân tích thừa số.
Đã có một khối lợng khổng lồ các tìa liệu về các thuật toán
phân tích thừa số và việc nghiên cứu kỹ lỡng sẽ đòi hỏi phải có một
cuốn sách dày hơn quyển sách này. ở đây chỉ cố gắng đa ra một cái
nhìn khái quát bao gồm việc thảo luận sơ lợc về các thuật toán phân
tichs thừa số tốt nhất hiện thời và cách sử dụng chúng trong thực tế. Ba
thuật toán hiệu quả nhất trên các số thật lớn là sàng bậc hai, thuật toán
đờng cong elliptic và sàng trờng số. Các thuật toán nổi tiếng khác
(những thuật toán toán có trớc) bao gồm phơng pháp và thuật toán
p-1 của Pollard, thuật toán p+1 của Williams, thuật toán liên phân số
và dĩ nhiên cả những phép chia thử.
Trong toàn bộ phần này, xchúng ta cỏìng số nguyên n cần phân
tích ra thừa số là một số lẻ. Phép chia thử bao gồm việc chia n
cho từng số nguyên lẻ cho tới . Nếu n < 10

12
thì đây là một
phơng pháp phân tích thừa số hợp lý một cách hoàn hảo, tuy nhiên với
n lớn hơn nói chung ta phải dùng các kỹ thuật tinh tế hơn.
[ ]
n
4.8.1. Phơng pháp p-1
Thuật toán p-1 của Pollar (đa ra vào năm 1947) là một thí dụ về
một thuật toán đơn giản đơn khi đợc áp dụng với các số nguyên lớn.
Thuật toán này (trình bày trên hình 4.15) có hai đầu vào: số nguyên lẻ
n cần đợc phân tích và một cận B. Có thể mô tả thuật toán nh sau:
Hình 4.15. Thuật toán phân tích thừa số p-1.
Giả sử p là ớc mhuyên tố của n và q B , với mỗi mũ nguyên tố
p(p-1). Khi đó
(p-1)B!
ở cuối vòng lặp for (bớc 2)
a 2
B!
(mod n)
nên a 2
B!
(mod p)
vì pn. nên theo định ý Fermat ta có :




135979 ì 115979
Trong trờng hợp này, phép phân tích sẽ thành công do 135978 chỉ gồm
các thừa số nguyên tố nhỏ:

Vì thế
135978 = 2 ì 3 ì131 ì 173
nếu lấy B 173 thì chắc chăn rằng 135978B! nh mong muốn.
Đầu vào: n và B
1. a=2
2. For j=2 to B do
a = a
j
mod n
3. d = UCLN(a-1,n)
4. if 1 < d < n then
d là một thừa số của n
else
không tìm đợc thừa số của n
(không thành công)
Trong thuật toán có (B-1) luỹ thừa theo modulo, mỗi luỹ cần
nhiều nhất là 2log
2
B phép nhân modulo dùng thuật toán bình phơng
và nhân. Việc tính ớc chung lớn nhất có thể thực hiện trong thời gian
O((log n)
3
) bằng thuật toán Euclide. Bởi vậy, độ phức tạp của thuật
toán là O(B logB (log n)
2
+(log n)
3
). Nếu B là O((log n)
i
) với một số

nguyên i xác định nào đó thì thuật toán thực sự là thuật toán thời gian
đa thức, tuy nhiên với phép chọn B nh vậy, xác suất thành công sẽ rất
nhỏ. Mặt khác, nếu tăng kích thớc của B lên thật lớn (chẳng hạn
tới ?????????????? ) thì thuật toán sẽ thành công nhng nó sẽ không
thực hiện nhanh hơn phép chia thử.
Nh vậy, điểm bất lợi của thuật toán này là nó yêu cầu n phải có
ớc nguyên tố p sao cho (p-1) chỉ các thừa số nguyên tố bé. Ta có thể
dễ dàng xây dựng đợc hệ mật RSA với modulus n= pq hạn chế đợc
việc phân tích theo phơng pháp này. Trớc tiên tìm một số nguyên tố
lớn p
1
sao cho p= 2p
1
+1 cũng là một số nguyên tố và một số nguyên tố
lớn q
1
sao cho q= 2q
1
+1 cũng là một số nguyên tố (nhờ dùng một trong
các thuật toán kiểm tra tính nguyên tố Monte-Carlo nêu trong phần
4.5). Khi đó modulo của RSA n= pq sẽ chống đợc cách phân tích theo
phơng pháp p-1.
Thuật toán đờng cong elliptic mạnh hơn (đợc Lenstra xây dựng
vào những năm 1980) trên thực tế là sự tổng quát hoá của phơng pháp
p-1. Ta sẽ không thảo luận về lý thuyết ở đây mà chỉ nhấn mạnh rằng,
thành công của phơng pháp đờng cong elliptic tuỳ thuộc vào tình
huống tơng tự : một số nguyên gần với p chỉ có các thừa số nguyên
tố bé. Trong khi phơng pháp p-1 phụ thuộc vào quan hệ trong Z
p
thì

phơng pháp đờng cong elliptic phụ thuộc vào các nhóm xác định trên
các đờng cong elliptic theo modulo n.
4.8.2. Thuật toán Dixon và sàng bậc hai
Thuật toán Dixon đợc xây dựng trên ý tởng đơn giản mà ta đã
thấy trong hệ mật Rabin. ý tởng đó là: nếu tìm đợc x y (mod n) sao
cho x
2
y
2
(mod n) thì UCLN(x-y,n) là ớc không tầm thờng của n.
Phơng pháp này sử dụng cơ sở nhân tử là một tập b chứa các số
nguyên tố bé. Trớc tiên ta nhận đợc một vài số nguyên x sao cho tất
cả các thừa số nguyên tốcủa x
2
(mod n) nằm trong cơ sở b (cách thực
hiện điều này sẽ đợc thảo luận sau). ý tởng thực hiên ở đây là lấy tích
của một vài giá trĩ sao cho mỗi số nguyên tố trong cơ sở đợc sử dụng
một số chẵn lần. Điều này dẫn đến một đồng d thức dạng mong muốn
x
2
y
2
(mod n) mà ta hy vọng sẽ đa đến việc phân tích n.
Ta sẽ minh hoạ bằng một ví dụ đã đợc dự tính kỹ lỡng.
Ví dụ 4.15
Giả sử n=15770708441(giá trị n này đã dùng trong ví dụ 4.14).
Giả sử b = {2,3,5,7,11,13}. Xét ba đồng thức sau:
8340934156
2
3 ì 7 (mod n)

12044942944
2
1 ì 7 ì 13 (mod n)
2773700011
2
=2 ì 3 ì 13 (mod n)
Nếu lấy tích của ba đồng d thức trên:
(8340934156 ì 2044942944ì2773700011)
2
(2ì 3ì 7ì 13)
2
(mod n)
Rút gọn các biểu thức bên trong các dấu ngặc theo modulo n, ta có:
9503435785
2
546
2
(mod n)
Sau đó tính:
UCLN(9503435785-546, 15770708441)=115759
Ta thấy 115759 là một thừa số của n.
Giả sử B = {p
1
, . . . .p
B
}là một cơ sở nhân tử. Giả sử c lớn hơn B
một chút (chẳng hạn C=B+10) và giả sử ta đã có C đồng d thức:
x
j
2

p
1

1j
ì p
2

2j
ì . . .ì p
B

Bj
(mod n)
với 1 j C. Với mỗi j xét véctor :
a
j
= (
1j
mod 2,
2j
mod 2, . . .,
Bj
mod 2) (Z
2
)
B
Nếu có thể tìm đợc một tập con các a
j
sao cho tổng theo modulo 2 là
vector (0,. . ., 0) thì tích của các x

j
tơng ứng sẽ sử dụng mỗi nhân tử
trong B một số chẵn lần.
Ta sẽ minh hoạ bằng cách trở lại ví dụ 4.15. Trong trờng hợp
này nếu C < B, vẫn tìm đợc sự phụ thuộc tuyến tính.
Ví dụ 4.15 (tiếp)
Cho 3 vector a
1
, a
2
, a
3
:
a
1
=(0, 1, 0, 1, 0, 0)
a
2
=(1, 0, 0, 1, 0, 1)
a
3
= (1, 1, 0, 0, 0, 1)
Dễ dàng thấy rằng:
a
1
+a
2
+ a
3
= (0, 0, 0, 0, 0, 0) mod 2

Đây là lý do cho thấy đồng d thức (thiết lập theo tích) sẽ phân tích
thành công đợc n.
Nhận thấy rằng, bài toán tìm một tập con C vector a
1
, a
2
, . . ., a
C
sao cho tổng theo modulo 2 là một vector toàn chứa số 0 chính là bài
toán tìm sự phụ thuộc tuyến tính (trên Z
2
) của các vector này. Với C >
B, sự phụ thuộc tuyến tính này nhất định phải tồn tại và ta có thể dễ
dàng tìm đợc bằng phơng pháp loại trừ Gaux. Lý do giải thích tại sao
lấy C > B+1 là do không có gì bảo đảm để một đồng d thức cho trớc
bất kỳ sẽ tạo đợc phân tích n. Khoảng 50% thuật toán cho ra x y
(mod n). Tuy nhiên nếu C > B+1 thì có thể nhận đợc một vài đồng d
thức nh vậy. (Nảy sinh từ các phụ thuộc tuyến tính khác của các a
j
).
Hy vọng là ít nhất một trong các đồng d thức kết quả sẽ dẫn đến việc
phân tích n.
Vấn đề còn lại là phải làm thế nào để nhận đợc các số nguyên x
j
mà các giá trị x
j
2
mod n có thể phân tích hoàn toàn trên cơ sở b. Một
vài phơng pháp có thể thực hiện đợc điều đó. Biện pháp sàng
bậc hai do Pomerance đa ra dùng các số nguyên dạng x

j
=j +
,j=1,2...... Tên sàng bậc hai lấy từ thủ tục sàng (không mô tả ở đây)
dùng để xác định các x
j
phân tích đợc trên b.
ở đây dĩ nhiên là một sự thoả hiệp: nếu B = | B | là một số lớn
thì thích hợp hơn cả là nên phân tích số nguyên x
j
trên b. Tuy nhiên
khi B càng lớn thì ta càng phải gom nhiều đồng d thức hơn trớc khi có
thể tìm đợc một quan hệ phụ thuộc. Lựa chọn tối u cho B xấp xỉ bằng
??????????????????
[ ]
n

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×