1. Trang chủ >
  2. Khoa Học Tự Nhiên >
  3. Toán học >

1 Cơ sở toán học của lý thuyết mật mã khoá công khai

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 (289.55 KB, 38 trang )


9

định Ψ = Φ−1 . Nếu việc này khả thi, Alice có thể quên đi khó khăn của

việc giữ khoá bí mật.

Trong hệ thống mã hoá khoá công khai ngày nay, các khó khăn trong

việc xác định Ψ từ Φ có xu hướng dựa trên một bài toán khó chưa giải

được, thường là các bài toán mà ngay cả những người giỏi nhất như Gauss

và các nhà toán học sau này đều không giải được, ví dụ như bài toán phân

tích nhân tử. Bây giờ chúng ta nghiên cứu các hệ thống mật mã khoá công

khai nổi tiếng nhất.



1.1.1



Hệ mã khoá RSA



Năm 1977, Ron Rivest, Adi Shamir và Len Adleman đề xuất một hệ thống

mật mã khoá công khai, là trung tâm của nhiều hệ thống bảo mật máy tính

ngày nay. Ý tưởng là Bob lấy hai số nguyên tố lớn p < q, tính tích của chúng

n = pq, và xác định hai số nguyên d và e thoả mãn de ≡ 1( (mod (p −

1)(q − 1)) (việc này dễ dàng). Khoá công khai, mà Alice sử dụng, sẽ bao

gồm số n và khoá mã hoá e, trong khi đó Bob giữ khoá giải mã d bí mật

(tức là giữ p và q). Ta giả sử tin nhắn m là một số nguyên thuộc [1, n − 1].

Để mã hoá m, Alice tính r := Φ(m) ≡ me (mod n), với Φ(m) ∈ [1, n − 1],

có thể dễ dàng tính được. Để giải mã Bob tính Ψ(r) := rd (mod n), với

Ψ(r) ∈ [1, n − 1]. Sử dụng Định lý Euler (cho tích của p và q) ta có thể dễ

dàng kiểm tra mde ≡ m (mod n), và do đó Ψ = Φ−1 .

Oscar biết n, và nếu ông có thể phân tích nhân tử n, thì ông cũng có thể

dễ dàng xác định Ψ, do đó độ bảo mật của hệ thống RSA phụ thuộc vào độ

khó của việc phân tích nhân tử. Như đã nói ở trên, việc này vượt xa những

gì khả thi ngày nay nếu chúng ta lấy p và q là các số nguyên tố có chứa



10

nhiều hơn 200 chữ số. Ta sẽ thấy rằng, việc tìm số nguyên tố (xác suất) lớn

như vậy rất dễ dàng bằng cách sử dụng các số giả nguyên tố, vấn đề sẽ thảo

luận trong luận văn.



1.1.2



Vấn đề lấy căn bậc hai modulo n



Từ Định lý Euler ta biết rằng, nếu ta có thể tìm được căn bậc hai b của 1

mod n mà khác ±1, thì điều này chứng tỏ rằng n là hợp số. Thực vậy, từ b

suy ra phép phân tích nhân tử của số lẻ n với:

gcd(b − 1, n) gcd(b + 1, n) = gcd(b2 − 1, n) = n



(1.1)



(do b2 ≡ 1 (mod n)) trong đó gcd(b − 1, n) và gcd(b + 1, n) nhỏ hơn n (vì

b ≡ 1 hay −1 (mod n)), kéo theo 1 < gcd(b − 1, n), gcd(b + 1, n) < n và

do đó (1.1) là phép phân tích nhân tử không tầm thường của n.

Một cách tổng quát hơn ta giả sử rằng cho trước hợp số lẻ n với ít nhất

hai nhân tử nguyên tố phân biệt, Oscar có một hàm fn sao cho nếu a là

một bình phương (mod n), thì fn (a)2 ≡ a (mod n). Sử dụng fn , Oscar

có thể dễ dàng phân tích nhân tử n (với thời gian đa thức ngẫu nhiên), vì

nếu ông lấy các số nguyên b trong khoảng [1, n − 1] một cách ngẫu nhiên

thì gcd( fn (b2 ) − b, n) là một nhân tử không tầm thường của n với điều

kiện b ≡ fn (b2 ) hay − fn (b2 ) (mod n); vì có ít nhất bốn căn bậc hai của

b2 (mod n), xác suất đây là một phép phân tích nhân tử của n là lớn hơn

hoặc bằng 1/2.

Sử dụng ý tưởng này, Rabin xây dựng một hệ thống mật mã khoá công

khai mà về bản chất việc phá khoá khó như tìm phân tích nhân tử của n.



11



1.1.3



Độ khó của việc tìm số không chính phương modulo p



Cho một số nguyên tố lẻ p ta dễ tìm được bình phương modulo p: lấy 1

hoặc 4 hoặc 9, hoặc thậm chí bất kỳ a2 (mod p). Có đúng (p − 1)/2 giá

trị trong số các giá trị modulo p khác không là bình phương modulo p, và

do đó có đúng (p − 1)/2 giá trị không là bình phương modulo p. Ta có thể

đoán rằng dễ dàng tìm được chúng, nhưng chúng ta không biết một cách

chắc chắn làm thế nào để nhanh chóng tìm một giá trị như vậy cho mỗi số

nguyên tố p (mặc dù chúng ta thực sự biết một cách nhanh chóng để kiểm

tra một số không chính phương hay không nếu chúng ta có nó).

Ý tưởng rõ ràng nhất là thử lần lượt a = 2, 3, 4, · · · cho tới khi tìm thấy

một số không chính phương. Người ta tin rằng có một số không chính

phương nhỏ hơn hoặc bằng 2(log p)2 , nhưng ta không thể chứng minh được

điều này (mặc dù ta có thể suy ra từ Giả thuyết Riemann suy rộng).



1.2



Vấn đề sinh số nguyên tố lớn



Trong mục này, ta sẽ thảo luận về độ phức tạp của việc sinh số nguyên tố

lớn. Ta sẽ dùng tài liệu Hà Huy Khoái [3] làm tài liệu tham khảo chính. Ta

sẽ nghiên cứu việc sinh số nguyên tố thỏa mãn:

1. Số sinh ra có độ dài 3072 bit,

2. Số được sinh ra là ngẫu nhiên, và

3. Thời gian sinh mỗi số phải nhanh, thời gian trung bình bé hơn 5 giây/1

số đối với các máy tính thông thường.



12

Nhắc lại, một số nguyên dương p > 1 được gọi là một số nguyên tố nếu

p không chia hết cho số nguyên dương nào ngoài 1 và p. Ngược lại, số p

được gọi là hợp số.

Ta ký hiệu π(n) là số các số nguyên tố nhỏ hơn hoặc bằng n, và gọi nó

là hàm phân phối của các số nguyên tố.

Ví dụ 1.2.1. π(10) = 4 vì có bốn số nguyên tố nhỏ hơn 10 là 2, 3, 5, 7.

Ta có định lý sau đây về ước lượng xấp xỉ hàm số học π(·):

Định lí 1.2.2. Ta có

π(n)

= 1.

n→∞ n/ ln n

lim



Nói cách khác, giá trị π(n) xấp xỉ bằng n/ ln n khi n vô cùng lớn.

Ví dụ 1.2.3. Với n = 109 , ta có

π(n) = 50847534







n/ ln n = 48254942.



Sai số ở đây là 6%.

Vậy ta lấy ngẫu nhiên một số nguyên dương k bit, xác suất để số này

là số nguyên tố bằng 1/ ln 2k . Vậy về trung bình, ta cần ln 2k lần thử để lấy

được một số nguyên tố k bit.

Ví dụ 1.2.4. Nếu k = 3072 thì trung bình lấy ngẫu nhiên ln 23072 ≈ 2130

số, ta sẽ có được một số nguyên tố k bit.

Từ phân tích ở trên, về trung bình thuật toán ngẫu nhiên dưới đây sẽ

dừng sau 2130 bước lặp.

Thuật toán sinh số nguyên tố.



Xem Thêm
Tải bản đầy đủ (.pdf) (38 trang)

×