Bài toán phân tích số và việc phá hệ mật RSA.

Một phần của tài liệu giáo trình an toàn và bảo mật thông tin (Trang 91 - 95)

. Các chỉ số trùng hợp tương hỗ quan sát được

a. Bài toán phân tích số và việc phá hệ mật RSA.

Cách tấn công dẽ thấy nhất đối với hệ mật RSA là người thám mã sẽ cống gắng phân tích n rathừa số nguyên tố n=p*q và khi đó anh ta dễ dàng tính được ϕ(n)=(p-1)(q-1) và do đó tìm được thông tin cửa sập d tương ứng với thông tin mã hoá E bằng thuật toán Euclide. Như vậy chúng ta thấy ngay rằng việcpháhệmật RSAlà“dễ hơn”bài toánphântích sốnguyênrathừasố nguyên tố tuy nhiên cũng chưa có một kết quả nào chỉ ra rằng bài toán phân tích sốlàthựcsựkhóhơn chonên ngườitathườn thừanhận rằngbàitoánphá hệRSA làtươngđươngvới bàitoánphântíchsố nguyênthànhthừasố người.

Đểđảm bảo tínhkhó phântích rathừasố của n=p*qthì yêucầu đầutiên là p,q là các số nguyên tố lớn xấp xỉ bằng nhau và là số nguyên tố “mạnh “. Khái niệm “mạnh”ởđây chỉ bắtnguồn từý nghĩa khóphân tíchdo vậy nósẽ được bổ xung cùng với kết quả có được của khả năng phân tích số. Nói một cách khác là khái niệm “mạnh” bao gồm sự loại trừ các lớp số nguyên tố mà với chúng tồn tại thuật toán phân tích hiệu quả, chúng ta có thể biết đến một khái niệmsơ khai củatính “mạnh”đólà cácsố nguyêntố pmà p-1và p+1có chứathừasốnguyêntốlớn.

b.ViệctấncônghệmậtRSA khácphươngphápphântíchsố.

http://www.ebook.edu.vn 81

Một kết quả thú vị là một thuật toán bất kỳ để tính số mũ giải mã d đều có thểđượcdùngnhưmộtchương trìnhcontrongthuật toánxácsuấtkiểuLas Vegasđể phântíchn.

Như vậy mặc dù rằng nếu d bị lộ thì việc phân tích n cũng không còn ý nghĩa theo quan điểm phá hệ mật tuy nhiên kết quả trên dù sao cũng cho ta

một thuật toán phân tíchsố n khi biết d với xác suất thành công khôngquá ½ củamỗilần chọnsốngẫunhiênlàmđầuvàocho thuậttoán.

4.2.4.Cácthuậttoánphântích số.

Trong phần này giới thiệu một số thuật toán phân tích số nguyên được coi là “mạnh nhất” theo nghĩa thời gian tính tốt nhất hiện nay. Việc trình bày của chúng tôi dựa trên quan điểm không phải là đưa ra thuật toán chi tiết nhằm mụcđíchphân tíchsố nguyênmàchủ yếunêuraý tưởngcủa thuậttoán và quantrọngnhất làđưara thôngsốvề thờigiantínhcủa chúngnhằmchứng minh cho kích thước tối thiểu của các modulo được sử dụng trong mật mã theo dạng tích hai số nguyên tố lớn. Các thuật toán được kể đến bao gồm thuật toán sàng bậc hai, thuật toán phân tích trên đường cong Elliptic, thuật toán sàng trường số.... nhưng do hai thuật toán sau đều cần phải có kiến thức bổ trợ khá cồng kềnh về đại số hiện đại vả lại điều kiện về tài liệu lại không đủ chi tiết nên bài giảng này chỉ trình bày thuật toán sàng bậc hai và cũng dừngởnhữngnétchínhyếunhất.

Cácthuậttoánphântíchsố:

*Thuậttoán sàngEratosthenes

Đây là thuật toán có tính phổ thông, với n có ước nhỏ thì việc áp dụng thuật toán này là hiệu quả. Thời gian tính của nó là 0( n). Thuật toán được môtả nhưsau:

i)p=1 ii)p=p+1

iii)Tínhr=n modp. Nếur>0 quayvềbước2.

Ngược lạiplàướccủa N,dừngchươngtrình.

*Thuậttoán sàngđồng

http://www.ebook.edu.vn 82

Thuậttoánđược môtảnhưsau:

i)Lấyngẫunhiênhaisốa vàb,vớia,b∈

Zn*

- Nếu đúngthì gcd((a-b) mod n,n) >1 hoặc gcd((a+b) mod n,n)>1 làước củan dừngchương trình.

-Ngượclạiquayvề i)

Phân tích thuật toán này dưới góc độ xác suất: Cho p là ước nguyên tố nhỏ nhất của n,thế thì cầncó tối thiểu bao nhiêu cặp a,b được xét đến đểxác suấtcó ítnhấtmộtcặptrongsốđóthoảmãn((a ± b)modp) ≡ 0 ≥ 0.5?

Bàitoántrên đượcgọilàbàitoán “trùngngàysinh”vàsốm tốithiểucần tìm trong bài toánsẽ là m ≈ c.p, vớic là mộthằng số tính được nàođó. Thuật toáncó thểthànhcôngvới xácsuất>0.5,saukhôngquámbước.

Bằng cáchduyệt dần thìthờigian củathuật toán khôngkhác gìthời gian của phép sàng. Tác giả J.M.Pollard đã sử dụng một phương pháp còn gọi là

“phương pháp δ ”. Chỉcần thôngqua m bướccó thểduyệtđược mcặpkhác

nhaunhưđãnêutrêntrong thuậttoán.

*Thuậttoán Pollard

Thuật toán hiệu quả trong việc tìm các ước nhỏ là thuật toán dựa vào phương pháp δ và được gọi là thuật toán Pollard. Thời gian tính của thuật toán này chỉ còn là 0( n). . Với p là ước nguyên tố nhỏ nhất của n. Trong trường hợptồi nhất(p ≈ n)thìthờigiantínhcủathuậttoáncũng chỉlà 4 n

Phươngpháp δ của Pollard:

Tìmhaiphần tửđồngdưmodilop (a ≡ ± bmodp)nhưng khôngđồngdư modulo n. Lúc này p sẽ là ước của gcd(n, (amb) mod n). Có thể mô tả thuật toánnhưsau:

Chọn dãy giả ngẫu nhiên {xi mod n, i=1,2,…} được xác định như sau: xi+1≡

(xi2+a)modnvớia≠

0vàa≠

-2còn giátrịđầux0tuỳý. Thuậttoán:

i)i=0 ii)i:=i+1

http://www.ebook.edu.vn 83

-Nếuđúngtacóp =gcd((x2i–xi)modn,n).Dừngchương trình -Ngượcquay vềbướcii)

Chúngtađiphântích thờigiancủathuậttoán: x2i–xi ≡

(x2i-12+a)– (x2i-1+a)≡

x22i-1–x2i-1)

(x2i-1–xi-1)(x2i-1+xi-1)≡ ≡

(x2i-1+xi-1)(x2i-2+xi-2)…(xi+x0)(xi –x0)

Tạibước thứ ichúng taxét đếni+1 cặp khácnhau vàcũng dễdàng nhận ra rằng các cặp được xét trong mọi bước là không giống nhau, do đó hiển

nhiên với p bước chúng ra đã có p cặp khác nhau được xét đến và như đã

phân tích ở trên. Thuật toán thành công với xác suất > 0.5 hay thuật toán của Pollardđược thựchiệntrong0( n)bước.

*Thuậttoán p-1

Thuật toánp –1 của Pollardlà thuậttoán phân tíchsố nguyênn dựa vào phân tíchcủa p–1vớip làmột ướcnguyên tốcủan.Đây làmộtthuật toáncó tác dụng nếu ta biết được các ước nguyên tố của một thừa số p của n nói chung và đặc biệt nếu n có một thừa số nguyên tố p mà p – 1 chỉ gồm những ước nguyên tố nhỏ nhất thì thuật toán có hiệu quả. Thuật toán này chỉ có hai đầu vàolànsốnguyênlẻcầnđược phântíchvàmộtsố b.

Cácbướccủa thuậttoán i)Đầuvàolàhaisố nvàb ii)a:=2

iii)forj:=2to bdoa:=ajmodn iv)d=gcd(a-1,n)

v)if1<d <nthendlàmộtthừasốcủan elsekhôngtìmđược thừasố củan. Vídụ:

Giảsửn=15770708441và b=180.ápdụng thuậttoánp–1tacó: +a= 1160221425

http://www.ebook.edu.vn 84

Thựctếphântíchđầyđủn thànhcácướcnguyêntốlà:

N=15770708441=135979 x115979

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ỏ: 135978=2x3x131x 173

Trong thuật toán có (b-1) luỹ thừa theo modulo, mỗi luỹ thừa cần nhiều nhất là 2log2b phép nhân modulo dùng thuật toán bình phương và nhân. Việc tìm ước chung lớn nhấtcó thểđược thực hiệntrong thờigian 0((logn)3) bằng thuậttoán Ơclít.Bởi vậy,độ phứctạpcủa thuậttoánlà

0(blogb(logn)2+ (logn)3)

Nếu b là 0((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ớnthìthuậttoánsẽthànhcông nhưngnósẽ khôngnhanhhơn phépchiathử.

Điểm bất lợicủa thuật toánnày là nó yêu cầu nphải có ước nguyên tố p sao chop-1chỉ cócácthừasốnguyêntốbé. Tacóthểxây dựngđượchệmật RSA với modulo n = p.q 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 p1 sao cho p = 2p1 + 1 cũng là một số nguyên tố và một số nguyên tố lớn q1 sao cho q = 2q1 + 1 cũng là một số nguyên tố. Khi đó modulo của RSA n = p.q sẽ chống được cách phân tích theophương phápp–1.

*Thuậttoán p ±1

Thuật toán p ±1 của Williams cũng dựa vào kết quả phântích của p ±1 với p là một ước nguyên tố của n. Để tiện nghiên cứu phương pháp p ± 1, trước hếtđiểmlạimộtsốkếtquảcủa chínhliênquanđếndãyLucas

Địnhnghĩa1:(dãyLucas)

Choa,blàhainghiệmcủaphương trìnhx2–px +q=0 (1)

Một phần của tài liệu giáo trình an toàn và bảo mật thông tin (Trang 91 - 95)