Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
191 KB
Nội dung
Hình 4.14. Phântíchmoduluscủarabin 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ântí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, mh mg 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ântí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
[ ]
n
ph ng pháp phântí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.ơ
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ântí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ântí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ântích s th nh công do 135978 ườ ợ à ẽ à
ch g m các th a s nguyên t nh :ỉ ồ ừ ố ố ỏ
Đầ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)à
Vì thế
135978 = 2 × 3 ×131 × 173
n u l y B ế ấ ≥ 173 thì ch c ch n r ng 135978ắ ă ằ B! nh mong mu n.ư ố
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
nhưng 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ântí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ântí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ântí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íchcủ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íchcủ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ântí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ântí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ântí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
[ ]
n
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ântí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ântí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
??????????????????
và điều này dẫn đến thời gian thực hiện cỡ
??????????????????????????
Sàng trường số là thuật toán phântích mới hơn (từ cuối những
năm 80) Thuật toán này cũng phântích n bằng cách xây dựng một
đồng dư thức x
2
≡ y
2
(mod n), song nó được thực hiện bằng các tính
toán trên vành các số đại số.
4.8.3.Các thuật toán phântích trên thực tế.
Thời gian chạy tiệm cận của các thuật toán sàng bậc hai,
đương cong elliptic và sàng trường số như sau:
Sàng bậc hai O?????????????//
Đường cong elliptic ??????????????
Sàng trường số ?????????????????
trong đó O(1) là hàm của n, hàm này tiến tới 0 khi n ∞ và p là thừa
số nguyên tố nhỏ nhất của n.
Trong tr ng h p x u nh t p ườ ợ ấ ấ ≈ ?????????, th i gian ch y ờ ạ
ti m c n c a các thu t toán ng cong elliptic v s ng b c hai ệ ậ ủ ậ đườ à à ậ
c b n nh nhau. Tuy nhiên trong tr ng h p n y, ph ng pháp ơ ả ư ườ ợ à ươ
s ng b c hai nói chung tr i h n ph ng pháp ng cong elliptic. à ậ ộ ơ ươ đườ
Ph ng pháp ng cong elliptic hi u qu h n n u các th a s ươ đươ ệ ả ơ ế ừ ố
nguyên t c a n có kích th c khác nhau. M t s r t l n ã cố ủ ướ ộ ố ấ ớ đ đượ
phân tích b ng ph ng pháp ng cong elliptic l tham s ằ ươ đườ à ố
Fermat (2
2048
-1) ( c Brent th c hi n n m 1988) .đượ ự ệ ă
[ ]
n
phântích các modulo RSA (trong ó n=pq, p v q l các Để đ à à
s nguyên t có cùng kích th c), s ng b c hai l m t thu t toán ố ố ướ à ậ à ộ ậ
th nh công nh t hi n nay. Sau ây l m t s k t qu quan tr ng. à ấ ệ đ à ộ ố ế ả ọ
V o n m 1983, thu t toán s ng b c hai ã phântích th nh công à ă ậ à ậ đ à
m t s có 69 ch s , s n y l m t th a s c a 2ộ ố ữ ố ố à à ộ ừ ố ủ
251
-1 (do Davis,
Holdredye v Simmons th c hi n). Quá trình n y ti p t c trong à ự ệ à ế ụ
nh ng n m 80 v n n m 1989 ã có th phântích c các sữ ă à đế ă đ ể đượ ố
có t i 106 ch s theo ph ng pháp n y( do Lenstra v Manasse ớ ữ ố ươ à à
th c hi n) nh phân b các phép tính cho h ng tr m tr m l m ự ệ ờ ố à ă ạ à
vi c tách bi t (ng i ta g i ph ng pháp n y l “phân tích th a ệ ệ ườ ọ ươ à à ừ
s b ng th i n t ”). ố ằ ư đ ệ ử
G n ây h n, 4/1994 Atkins, Graff, Lenstra v Leyland ã ầ đ ơ à đ
phân tích c m t s 129 ch s ( c g i l RSA-129) nh sđượ ộ ố ữ ố đượ ọ à ờ ử
d ng s ng b c hai (các s RSA-100, RSA-110, ,RSA-500 l m t ụ à ậ ố à ộ
danh sách các modulo RSA c công b trên internet nh l s đượ ố ư à ự
thách cho các thu t toán phân tích. M i m t s RSA-d l m t đố ậ ỗ ộ ố à ộ
s d ch s , s n y l tích c a hai s nguyên t có kích th c ố ữ ố ố à à ủ ố ố ướ
x p x nhau). Vi c phântích s RSA-129 c n h ng tr m tính toánấ ỉ ệ ố ầ à ă
v i máy tính 5000 MIPS (tri u l nh/s) c th c hi n b i 600 ớ ệ ệ đượ ự ệ ở
nh nghiên c u trên to n th gi i.à ứ à ế ớ
S ng tr ng s l m t thu t toán m i nh t trong ba thu t à ườ ố à ộ ậ ớ ấ ậ
toán toán. Nó có v có ti m n ng l n do th i gian ch y ti m c n ẻ ề ă ớ ờ ạ ệ ậ
c a nó nhanh h pn c hai thu t toán trên. Thu t toán n y hi n v nủ ơ ả ậ ậ à ệ ẫ
còn trong th i kì nghiên c u, tuy nhiên ng i ta ã d oán l ờ ứ ườ đ ự đ à
s ng tr ng s ph i ch ng t l nhanh h n v i các s có trên à ườ ố ả ứ ỏ à ơ ớ ố
125-130 ch s . N m 1990, Lenstra, Manase v Pollaid ã dùng ữ ố ă à đ
s ng tr ng s phântích (2à ườ ố để
512
- 1) th nh ba s nguyên t có 7, à ố ố
49 v 99 ch s .à ữ ố
4.9. chú giải và tailiêu dẫn
ý tưởng về mật mã khoá công khai đã được Diffie và Hellman
nêu ra vào 1976. Mặc dù [HD 76A] là tàiliệu được trích dẫn nhiều
nhất những bài báo Hội nghị [DH 76] thực tế đã xuất hiện sớm hơn
một chút. Hệ mật RSA được Rivest, Shamis và Adleman [RSA 78]
phát minh. Hệ mật Rabin được mô tả trong [RA 79]: một hệ tương tự
với phép giải mã không mập mờ đã được Willians tìm ra trong [Wi
80]. Bạn đọc nếu tham khảo [Di 92] là một bài báo tổng quát và mặt
mã khoá công khai của Diffie.
Phép thử Solovay- Stassen lần đầu tiên mô tả trong [SS 77].
Phép thử Miller- Rabin được nêu trong[Mi 76] và [Ra 80]. Thảo luận
của chúng ta về các xác suất sai dựa trên các nhập xét của Brassard
và Bratly [BB 88A,ξ 8.6] (cũng có thể trong[BBCGP 88]. Các cận
tối nhất hiện thời về xác suất sai của thuật toán Miller- Rabin có thể
tìm thấy trong [DLP 93].
Nội dung củaphần 4.6 dựa trên quan điểm của Salomaa [SA
90, các trang 143-154]. Phép phântích n với số mũ giải mã cho trước
được nêu trong [DE 84]: các kết quả về thông tin riêng bị lộ bởi RSA
lấy từ [GMT 82].
Như đã nói trên, đã có rất nguồn tàiliệu về các thuật toán phân
tích. Pomerance [Po 90]là tổng quát về phếp phân tích. Lenstra và
Lenstra [LL 90] là một báo cáo hay là về các thuật toán lý thuyết nói
chung. Bressoud [Br 89] là một giáo trình sơ cấp về phép phântích
thừa số và phép kiểm tra tính nguyên tố. Các giáo trinh về mật mã có
chú trọng tới lý thuyết số là các sách của Koblitz [Ko 87] và của
Kranakis [Kr 86]. Còn sách của Lenstra và Lenstra [LL 93] là một
chuyên thảo tốt về sàng trường số.
Các bài tập 4.7- 4.9 cho một số ví dụ về trục trặc trong giao
thức (protocol). Về vấn đề này có thể xem một bài báo rất hay của
Moore [Mo 92].
Bài tập
4.1. Hãy dùng thu t toán Euclide m r ng tính các ph n t ậ ỡ ộ để ầ ử
ngh ch o rau:ị đả
a) 17
-1
mod 101
b) 357
-1
mod 1234
c) 3125
-1
mod 9987
4.2. Giải hệ phương trình đồng dư sau:
x ≡ 12 (mod 25)
x ≡ 9 (mod 26)
x ≡ 23 (mod 27)
4.3. Giải hệ phương trình đồng dư sau
13x ≡ 4 (mod 99)
15x ≡ 56 (mod 101)
g i ý: tr c tiên hãy dùng thu t toán Euclide m rông r i áp d ng ợ ướ ậ ỡ ồ ụ
nh lý ph n d c a China.đị ầ ư ủ
4.4. Ta nghiên cứu một số tính chất của các căn nguyên thuỷ
a) 97 là một số nguyen tố. Hãy chứng minh rằng x ≠ 0 là một
căn nguyên thuỷ theo modulo 97 khi và chỉ khi
x
32
≡ 1 (mod 97) và x
48
≡ 1 (mod 97)
b) Hãy dùng phương pháp này để tìm căn nguyên thuỷ nhỏ
nhất theo modulo 97.
c) Giả sử p là một số nguyên tố và p-1 có phầntích ra các mũ
nguyên tố sau :
ở đây p
i
là các số nguyên tố khác nhau. Hãy chứng minh tỏ rằng
x ≠ 0 là một căn nguyên thuỷ theo modulo p khi và chỉ khi
x
(p-1)/p
i
≡ 1 (mod p ) với 1 ≤ i ≤ n
4.5. Giả sử n =pq, p và aq là các số nguyên tố lẻ phân biệt vad ab ≡
1 (mod (p-1)(q-1)). Phép toán mã hoá RSA là
e(x) = x
b
mod n
và phép toán giải mã là d(y) = y
a
mod n.
Ta đã chứng tỏ rằng d(e(x)) = 1 nếu x ∈ Z
n
*
. Hãy chứng tỏ rằng
khẳng định trên là đúng đối với bất kỳ x ∈ Z
n
.
Chỉ dẫn: Hãy dùng kết quả : x
1
≡ x
1
(mod pq) khi và chỉ khi x
1
≡ x
1
(mod p) và x
1
≡ x
1
(mod q). Điều này rút ra từ định lý phần dư China.
4.6. Hai ví d v b n mã RSA c nêu các b ng 4.1 v ụ ề ả đượ ở ả à
b ng 4.2. Nhi m v c a b n l ph i gi i mã chúng. Các tham s ả ệ ụ ủ ạ à ả ả ố
công khai c a h th ng l n =18923 v b = 1261 (b ng 4.1) v n = ủ ệ ố à à ả à
31313, b = 4913 (v i b ng 4.2). Phép gi i m cáo th th c hi n ớ ả ả ả ể ự ệ
nh sau. Tr c h t h phântích n ( i u n y khá d vì n quá ư ướ ế ỹ đ ề à ể
nh ). Sau ó tính s m a t ỏ đ ố ũ ừ φ(n) v cu i cùng s gi i mã b n à ố ẽ ả ả
∏
=
=−
n
1 i
1
e
i
p 1p
[...]... dùng A làm một chương con trong thuật toán giải mã Las Vegas có xác suất không thành công là ε Chỉ dẫn: sử dung tính chất nhân của RSA là eK (x1) eK(x2) = eK(x1x2) trong đó tất cả các phép toán số học là theo modulo n 4.12 Viết một chương trình để đánh giá các ký hiệu Jacobi bằng cách dùng bốn tính chất được nêu ở phần 4.5 Chương trình không thực hiện việc phântích thừa số trừ việc phân ra các luỹ... thế nào Mỗi phần tử của Zn sẽ biểu thị ba ký tự như trong các ví dụ sau: DOG 3 × 262 + 14 × 26 +6 = 2398 CAT 2 × 262 + 0 × 26 + 19 = 1371 ZZ 25 × 262 + 25 × 26 + 25 = 17575 Bước cuối cùng trong chương trình của bạn là làm ngược lại quá trình trên Bản rõ đầu lấy trong cuốn “The diary of Samuel Mảchbankls” của Robertson Davies, 1947 Bản rõ thứ hai lấy từ cuốn “Lake Wobegon Days” của Garrison Keillor,... số trừ việc phân ra các luỹ thừa bậc hai Hãy kiểm tra chương trình của bạn qua việc tính các ký hiệu Jacobi sau: 610 20964 1234567 , , 987 1987 111111.11 4.13 Hãy viết một chương trình tính số các số giả nguyên tố Euler theo các cơ sở 837, 851 và 1189 4.14 Mục đích của bài tập này là phải chứng tỏ rằng: xác suất của kiểm tra tính nguyên tố Solovay- Strassen nhiều nhất... trình 4.1 và 4.2 có liên quan đến các hàm half và parity 4.18 giả sử p = 199, q = 211 và b = 1357 trong hệ mật Rabin Hãy thực hiện tính toán sau: a) Xác định 4 căn bậc hai của modulo n, trong đó n =pq b) Tính phép mã y = ek(32767) c) Xác định 4 bản giả mã có thể của bản mã y đã cho 4.19 Hãy phân tích ra thừa số các số 262063 và 9420457 bằng phương pháp p-1 Trong mỗi trường hợp, để thành công phải chọn... giảm xác suất sai tối đa δ là: log 2δ log 2ε 4.16 Giả sử thiếu trần trọng, Bob đã để lộ số mũ giải mã của mình là a = 14039 trong hệ mật RSA với khoa công khai n = 36581 và b = 4679 áp dụng dụng thuật toán sác suất để phân tích n theo thông tin được biết này Hãy kiểm tra thuật toan của bạn với các phép chọn ngẫu nhiên w = 9983 và w = 13461 Hãy chỉ ra tất cả các tính toán 4.17 Hãy chứng minh... đủ để đảm bảo liên lạc an toàn toàn Giả sử Bob có một hệ mật RSA có modulo n lớn để việc phân tích n không thể thực hiên trong một thời gian chấp nhận được Giả sử Alice gửi một thong báo cho Bob bằng cách biểu thị một ký tự bằng một số nguyên trong khoảng 0- 25 (chẳng hạn A↔0, B ↔1,…) và rồi mã hoá từng ký tự của bản rõ a) Hãy mô tả cách Oscar có thể giải mã dễ dàng các bản mã được mã như cách trên... b =3 Các modulo tương ứng n1, n2, n3 Giả sử Alice mã hoá cùng một bản rõ x để gửi cho Bob, Bar và Bert Khi đó Alice tính yi = x3 mod ni , 1≤ i ≤ 3 Hãy mô tả cách tnhs x của Oscar khi anh ta đã biết y1, y2, y3, mà không cần phải phân tích bất cứ ni nào 4.10 Bản rõ x được gọi là cố định nếu ek(x) = x Hãy chứng tỏ rằng đối với hệ mật RSA, số các bản rõ cố định x ∈ Zn* bằng UCLN(b-1, p-1) × UCLN(b-1, p-1)... tục modulo chung Đầu vào : n, b1, b2, y1, y2 1 Tính c1 = b1-1 mod b2 2 Tính c2 = (c1b1- 1)/b2 c c -1 3 Tính x1 = y1 (y2 ) mod n 1 2 a) Hãy chứng tỏ rằng giá trị x1 tính được ở bước 3 của hình 4.16 thực tế là bản rõ x của Alice Bởi vậy, Oscar có thể giải mã được thông báo mà Alice đã gửi, ngay cả khi bản rõ được gửi qua hệ mật được coi là an toàn b) Minh hoạ cách tấn công qua việc tính x theo phương... cách Oscar có thể giải mã dễ dàng các bản mã được mã như cách trên b) Minh hoạ cách tấn công qua việc giải mã bản mã sau (bản này đã được mã bằng hệ mật RSA với n = 18721 và b = 25) mà không cần phải phân tích n: 365,0,4845,14930,2608,2608,0 Bài tập này mô tả một ví dụ khác về sự trục trặc thủ tục (theo Simons)trong RSA được gọi là trục trặc thủ tục modulo chung Giả sử Bob có hệ mât RSA với modulo n,... nhưng nên ≡ -1 (mod n) a(n-1)/2 ≡ 1 (mod p2p3…ps) a(n-1)/2 ≡ -1 9mod n) b) Nếu n là một số hợp số lẻ, chứng minh rằng : | G(n) | ≤ (n-1) /2 c) Tổng hợp các kết quả trên, hãy chứng minh rằng xác suất sai của phép kiểm tra tính nguyên tố Solovay- Strassen nhiều nhất là 1/2 4.15 Giả sử ta có thuật toán Las-Vegas với xác suất sai ε a) Hãy chứng minh rằng, xác suất thành công lần đầu sau phép thử thứ n là . 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ẽ. 82].
Như đã nói trên, đã có rất nguồn tài liệu về các thuật toán phân
tích. Pomerance [Po 90]là tổng quát về phếp phân tích. Lenstra và
Lenstra [LL 90] là