Chơng I : Giới thiệu về hệ mật RSA
I. Cơ sở toán hệ mật RSA.
1. Hàm cửa sập một chiều và độ bảo mật của hệ mật khoá công khai.
Nh đã trình bày trong phần trớc, một khái niệm cơ bản khi nghiên cứu các hệ
mật khoá công khai nói chung và hệ mật RSA nói riêng là khái niệm về hàm cửa
sập một chiều,
Định nghĩa 1: Hàm f: X Y đực gọi là hàm một chiều nếu tính y=f(x) với
mọi x X là dễ nhng việc tìm x khi biết y lại là vấn đề khó.
Thực ra phát biểu trên chỉ là định nghĩa phi hình thức (do thuật ngữ khó đợc
dùng đến là không định lợng và thậm chí sau này chúng ta đã biết là ngay cả khi
đã định lợng bằng sự không tồn tại thuật toán giải bài toán ngợc trong phạm vi đa
thức thì khía niệm khó nêu trên có tồn tại hay không cũng cha đợc ai khẳng
định rõ ràng) và điều đáng tiếc hơn nữa là tất cả các hàm ứng cử viên cho khái
niệm này cho đến nay chỉ mới đợc coi là một chiều.
Chúng ta dễ dàng thống nhất đợc với nhau là chỉ riêng hàm một chiều là
không đủ để xây dựng thành một luật mã theo kiểu công khai hàm mã hoá do vì
chính bản thân chủ nhân của bức điện mật cũng gặp phải hoàn cảnh tơng tự nh
ngời khác. Nh vậy để có thể giải mã một cách hữu hiệu thì ngời giải mã phải có
một hiểu biết tuyệt mật nào đó về khoá giải (một hiểu biết theo kiểu nếu biết
nó thì cách giải dễ dàng) hiểu biết tuyệt mật này đợc gọi là cửa sập. Hàm một
chiều nh trên đợc gọi là hàm một chiều có cửa sập.
Dĩ nhiên dù không biết cửa sập thì ngời thám mã vẫn có thể sử dụng hiểu biết
về hàm f để lần lợt tính tất cả các giá trị f(x) cho mọi bản rõ x cho tới khi tìm đợc
bản rõ thoả mãn y=f(x). Bản rõ tìm đợc trên chính là kết quả giải mã của y.
Ngoài ra ngời thám mã còn có thể sử dụng nhiều phơng pháp tấn công khác
nhằm vào đặc thù riêng của từng hàm f để tìm ra bản rõ trong các trờng hợp riêng
rẽ khác chứ không nhất thiết phải giải bài toán ngợc.
Tóm lại đọc an toàn của hệ mật khoá công khai không chỉ phụ thuộc vào độ
khó của việc giải bài toán ngợc mà tính bền của sự an toàn này còn phụ thuộc
vào các phơng pháp tấn công của các thám mã, vả lại nh đã trình bày ở trên thì
toàn bộ các hê khoá mật công khai đang đợc sử dụng đều cha đực sự khẳng định
về tính khó mf ngay cả khi đã có sự đảm bảo này thì có sự tiến bộ không
ngừng của công nghệ tính toán tghì hiển nhiên nhiều vấn đề cha thể chứp nhận đ-
ợc trong hjiện tại sẽ đợc chấp nhận trong tơng lai. Thực tế không chỉ đối với các
hệ mât khoá công khai do vậy quan niêm mới về tính an toàn tơng đối mà với nó
đã nẩy sinh ra các hệ mật khoá công khai đồng thời cũng đặt cho chúng ta nhiều
bài toán nghiêm túc phải giải quyết khi sử dụng hệ mật này. trong khuôn khổ của
đề tài này, chúng tôi không có tham vọng trình bày kỹ lỡng tất cả các vấn đề nảy
sinh đối với việc sử dụng các hệ mật khoá công khai mà chỉ giới tghiệu cụ thể
mọt hệ mật mà với nó sự an toàn cũng nh khả năng ứng dụng của nó đã đợc các
bộ óc vĩ trên thế giới thừa nhận là hệ mật khoá công khai sáng giá nhất, đó là hệ
mật khoá công khai RSA.
2. Hệ mật RSA.
a. Hệ mật RSA.
Cho n=p*q với p và q là hai số nguyên tố.
Kí hiệu e, d là hai số thoả mãn e*d1 mod (n).
ở đây (n)=(p-1)(q-1).
Hàm f: Z
n
Z
n
đợc xác định nh sau:
f(x) x
e
mod n x Z
n
.
Ngời ta đã coi rằng f là hàm một chiều và chúng ta dễ dàngkiểm
tra hàm ngợc của f là f
-1
đợc xác định nh sau:
f
-1
(x) y
d
mod n x Z
n
.
nh vậy nếu biết đợc d thì việc tính f
-1
sẽ trở nên vấn đề dễ vậy giá trị d trên
chính là cửa sập của f.
Tất nhiên hiện nay ngời ta cũng cha tìm đợc thuật toán hữu hiệu nào cho phép
tìm đợc d mà không cần tìm p,q do vậy có thể ngầm hiểu rằng việc tìm đợc d
cũng tơng đơng việc tìm đợc p, q. Tuy nhiên ở phần sau chúng ta sẽ thấy thậm
chí việc biết d cũng không giúp ích gì lắm cho việc tìm p và q.
b. Xây dựng mạng thông tin theo hệ mật RSA.
Trong hệ mật RSA thì không gian các bản rõ P, không gian xác các bản mã
chính là Z
n
còn không gian khoá
K={
(e,d,n): ở đây n là tích của hai số nguyên
tố p và q với e*d 1 mod (n)}
Mạng thông tin theo hệ mật RSA đợc thiết lập nh sau:
Mỗi thành viên M
i
trong hệ thống chọn cho mình một khoá (e
i
,d
i
,n
i
) K.
Công bố e
i
và n
i
làm thông tin công khai để mọi ngời mã hoá thông tin muốn gửi
cho anh ta theo luật C X
e
i
mod n
i
và giữ thông tin cửa sập d
i
để giải mã các
bản mã thông tin gửi cho mình theo luật C X
d
i
mod n
i
.
c. Tính khả thi của thuật mã hoá và giải mã trong hệ RSA
Ta thấy rằng để mã hoá hay giải mã một thông báo theo luật RSA chính lf
việc thực hiện một phép tính luỹ thừa modulo n. Việc tính toán này chỉ cần thực
hiện trong thời gian O(log
3
n) với đơn vị tính là thời gian để thực hiện một thao
tác cơ sở của máy tính. Với một số công bố gần đây ngời ta đã chỉ ra rằng thời
gian tính đó chỉ còn là O(log
2
n) với việc sử dụng biến đổi Furier nhanh.
Theo các tài liệu công bố hiện nay thì những thiết bị phần cứng mật mã RSA
hiệu quả nhất hiện nay chỉ đạt tốc dộ khoảng 600 Kb/s tức là chậm hơn 1500 lần
so với hệ mật DES (1 Gb/s) nh vậy việc mã dịch bằng luật RSA vẫn còn bị hạn
chế về mặt thờ gian do về mặt thực tế thì hệ mật RSA có lẽ chỉ dùng đẻ thực hiện
các tính năng u việt của nó nh phân phối mầm khoá tự động, xác thực...
3. Độ an toàn của hệ mật RSA.
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ệc phá hệ mật
RSA là dễ hơn bài toán phân tích số nguyên ra thừa số nguyên tố tuy nhiên
cũng cha có một kết quả nào chỉ ra rằng bài toán phân tích số là thực sự khó hơn
cho nên ngời ta thờn thừa nhận rằng bài toán phá hệ RSA là tơng đơng với bài
toán phân tích số nguyên thành thừa số ngời.
để đảm bảo tính khó phân tích ra thừa số của n=p*q thì yêu cầu đầu tiê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ắt nguồn từ ý nghĩa khó phân tích do 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ệm sơ khai của tính
mạnh đó là các số nguyên tố p mà p-1 và p+1 có chứa thừa số nguyên tố lớn.
b. Việc tấn công hệ mật RSA khác phơng pháp phân tích số.
Trong [Stínon] đa ra chứng minh 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ể đợc dùng nh một chơng trình con trong thuật
toán xác suất kiểu Las Vegas để phân tích n.
Nh vậy mặc dù rằng nếu D bi 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ích số n khi biết D với xác suất thành công không quá 1/2 của mỗi lần
chọn số ngẫu nhiên làm đầu vào cho thuật toán.
4. Các thuật toán phân tích số.
Trong phần này em 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
đích phân tích số nguyên mà chủ yếu nêu ra ý tởng của thuật toán và quan trọng
nhất là đa ra thông số về thời gian tính của chúng nhằm chứ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ố.... nhng 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 em chỉ trình bày thuật toán
sàng bậc hai và cũng dừng ở những nét chính yếu nhất.
a. thuật toán sàng bậc hai.
T tởng chủ đạo của một loạt khá lớn các thuật toán phân tích số nh phơng
pháp đặc biệt của Euler, phơng pháp phân tích các dạng chính phơng của Danien
Shanks, phơng pháp triển khai liên phân số của Morrison và Brillhart, phơng
pháp sàng bậc hai của Pomerance .. là cố tìm đồng d thức x
2
y
2
mod N sao cho
x y mod N, còn kỹ thuật tìm cụ thể nh thế nào thì chính là nội dung riêng của
từng thuật toán.
Đối với thuật toán sàng bậc hai của Pomerance đợc thực hiện nh sau:
- Chọn k là số nguyên tố đầu tiên và gọi là cơ sở phân tích.
- Chọn B là một số nào đó gọi là ngỡng tìm các thặng d bậc hai nhỏ.
- Tìm k+1 các thặng d bậc hai nhỏ hơn B và phân tích đợc hoàn toàn trong tập
cơ sở trong lớp các số dạng Q(x) ((m+x)
2
- N) mod N với k là số phần tử của cơ
sở, m = [
N
] còn x=0, 1, 2,....
- Xây dựng đồng d thức x
2
y
2
mod N từ k+1 thặng d bậc hai tìm đợc trên.
Cơ sở thuật toán chủ yếu dựa vào thứ nhất là khả năng tìm đợc k+1 thặng d
bậc hai và tiếp đến là xây dựng đồng d thức x
2
y
2
mod N nh thế nào.
Trớc hết chúng ta cùng xem xét đến vấn để thứ hai.
Giả sử thặng d bậc hai thứ i tìm đợc ở trên là r
i
=
i
2
= q
1
1
. q
2
2
.... q
k
k
. (qj là
số nguyên tố thứ j của B), ta đặt tơng ứng với véc tơ v
i
[GF(2)]
k
nh sau r
i
khác
nhau đợc ứng cùng với véc tơ v nhng một cách hình thức ta có thể coi có k+1 véc
tơ khác nhau thu từ việc ứng k+1 giá trị r có đợc ở trên.
Hiển nhiên trong không gian k chiều GF(2)
k
thì tập k+1 véc tơ v
i
(i=1,2,...,k+1) chắc chắn phụ thuộc tuyết tính, giả sử ta có tổ hợp tuyết tính đặc
trng cho phụ thuộc đó là:
+
=
1
1
k
i
a
i
v
i
với là véc tơ không và a
i
không đồng d bằng không.
khi đó
=
1ai
Q(X
i
) theo định nghĩa sẽ là x
2
mod N, mặt khác do điều kiện đặt