Tải bản đầy đủ (.pdf) (104 trang)

Nghiên cứu những phương pháp tấn công giao thức yếu sử dụng hệ 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 (30.7 MB, 104 trang )

Đ Ạ I H Ọ C Q U Ố C GIA H À N Ộ I
KHOA CÔNG NGHÊ

N g u y ễ n T h ị P h ư ơ n g Liên

NGIỈIÊN CỨU NHỮNG PHƯƠNG PHÁP
TẤN CÔNG GIAO THỨC U s ử DỤNG
HỆ MẬT MÃ KHỐ CƠNG KHAI

C hun ngành: CÔNG N G H Ệ THÔNG TIN
M ã sổ:

1.01.10

LUẬN VĂN THẠC s ĩ
NGƯỜI HƯỚNG DẢN KHOA HỌC:
TS. NGUYỄN NGỌC CƯƠNG

Hà Nội - 2003
*■: ::

V'U?/J31


Trang 2

2.2.5 Giao thức modal chung và các phương pháp tẩn công.....................25

2.2.6 Giao thức số mũ công khai nhỏ.... ........................................... 31
2.2.7 Giao thức sổ m ũ bí mật n h o .................... ............................... 33
2.2.8 Giao thức entropy thấp........... ............................................... 36


2.2.9 Giao thức khoủ đổi xứng...................................................... 38
2.2. ỉ 0 Tóm tắt và phản tích............................................................ 42
CHƯƠNG 3 - VỀ VIỆC LẬP TRÌNH MÔ PHỎNG PHƯƠNG PHÁP

TÁN CÔNG GIAO THỨC s ử DỤNG HỆ MẬT MÃ KHỐ CƠNG
*





KHAI RSA CĨ MODUL CHUNG...................................................... 44
3.1. U CẦU TÍNH TỐN SĨ CỠ LỚN.......................................... 44
3.2. BIÉƯ DIỄN SĨ CỠ LỚN............................................................ 45
3.3. CÁC THUẬT TỐN TÍNH TỐN SĨ CỠ LỚN............................ 47

3.3.1 Mội sổ khái niệm......................................................... ........ 47
3.3.2 So sảnh................................................................................. 48
3.3.3 Phép cộng........................... ................................................ 49
3.3.4 Phép trừ............................................................................... 50
3.3.5 Phép nhân...................................................................... ..... 50
3.3.6 Phép chia............................................................................. 5ì
3.3.7 Luỹ thừa.... .......................................................................... 52
3.3.8 Ước số chung lớn nhất............................................................53
3.3.9 Phép tỉnh nhân theo moduỉ p ...................................................54
3.3.10 Phép tính luỹ thừa theo moduỉ p............................................ 54
3.3.1 Ị Tìmphần tử nghịch đảo theo moduì p .....................................55
3.3. ỉ 2 Phép cộng có dấu................................................................ 56
3.3.13 Phép trừ có dấu....... ........................................................... 57
3.3. ì 4 Phép nhân có dấu................................................................57

3.4. MỘT SĨ NÉT VỀ LẬP TRÌNH TÍNH TỐN SỐ CỠ LỚN.............. 58


3.5. GIĨI THIỆU CHƯƠNG TRÌNH TÁN CƠNG GIAO THÚC s ử DỤNG
HỆ MẬTMẰ RSA Có MODUL c h u n g ........................................... 59
3.5. ỉ Bộ cơng cụ tốn h ọ c ............ ........................................................................... 59
3.5.2 Trình minh hoạ thuật tốn tấn công giao thức sư dụng hệ mật mã

RSA cỏ modul chung....................................... ............................... 60
KÉT LUẬN......................................................................................... 64
TÀI LIỆU THAM KHẢO........................ ............................................6 6
PHỤ LỤC............................................... ............................................67


i ra na, 4

MỞ ĐẦU

T rư ớ c đây, m ật mã h ầ u n h ư chỉ được quan tâm tron g lĩnh vực quân sự
và n g o ại giao. T u y nhiên, tro n g thời đại m áy tính điện tử, đặc biệt khi m ạn g
m áy tính trở nên phổ biến, các dịch vụ thư tín điện tử, th ư ơ ng mại điện tử,
g iao d ịch tiền tệ., trên m ạ n g p h át triển, và những cơ sở dữ liệu k h ổ n g lồ chứ a
các th ô n g tin riêng tư đư ợ c ỉưu g iữ tro n g nhừng chiếc m áv tính kết nối m ạng
thì việc sử d ụ n g m ật m ã để đ ảm bảo an toàn m ạng, báo m ật và xác thực dữ
liệu đã đ ư ợ c phổ b iến rộ n g rãi tro n g x ã hội,
T ừ cuối n h ữ n g n ăm 70, các nhà lập mã đà phát triển các hệ m ật m ã có
độ m ật đ ư ợ c bảo đảm b ằ n g đ ộ ph ứ c tạp tính tốn. N h ữ n g th uật toán m ật m ã
này yêu cầu khả n ăn g tính tốn phức tạp khi tấn cơ n g và đư ợc thiết kế để
c h ố n g lại sự tấn cô n g c ủ a các đối thủ có thời gian giới hạn. Ý tư ở n g cơ bản ià
xây d ự n g n h ữ n g hệ th ố n g sao cho biết phần khoá lập m ã và thuật toán lập m ã

vẫn rất k h ó tìm đư ợc cách giải m ã và thư ờn g là khó tìm đ ư ợ c phần khố giải
mã. P h ần kho á lập m ã v à phần k h o á giải mà khác nhau, trong đó phần khố
lập m ã là c ơ n g khai, p h ần k h o á giải m ã là bí mật. Và hệ thố ng này đư ợc gọi là
hệ m ật m ã k h o á cô n g khai, ví dụ n h ư hệ mật mã R SA , R abin, E lG am al,..
Khi m ột thuật toán m ật m ã đ ư ợ c sử dụng để bảo m ật hay xác thự c dữ
liệu, nó sẽ nằm tro n g k h u ô n khố m ột giao thức xác định, thích hợp để xử lý
d ừ liệu. C h ính vì vậy, từ khi hệ m ật m ã khoố cơng khai ra đời đã có rất nhiều
giao thứ c đư ợ c thiết kế đ ế n â n e cao độ tin cậy và xác thực. M ục đích của g iao


Trang 5

thức là đàm bao thuật toán mật mà sê thực sự cung cấp sự báo mật hay xác
thực mà hệ thống yêu cầu.
C ó nhiều giao thức đ ứ n g v ừ n g và được đánh giá tơt sau một khống
thời gian dài sử d ụ n g như giao thức X.509, Kerberos... Tuy nhiên cũ n g có
nhiều giao thức n hanh ch ón g bộc lộ nhược điếm và bị tấn công mặc d ù thuật
toán m ật m ã sử d ụ n g trone, đó được đánh giá là tốt. Vì vậy việc đánh giá độ
an toàn cúa giao thức là rất quan trọng. Đ ộ an loàn của giao thức k h ô n g chỉ
phụ thuộc v à o th uật tốn m ật m ã m à cịn phụ thuộc vào việc thiết kể giao thức
và cho đến nay đã có m ột số chu yên n gành ra đời đê nghiên cứu về độ an toàn

của g iao thức

chẳng hạn Logic BAN, ch ứ n g

minh tri thức

không V.V..


về mặt thực tiễn, chúng ta cũng biết rằng trong nhiều mạng máy tính
người ta sử d ụ n g giao thức để đảm bảo bảo mật và xác thực dữ liệu, chính vi
vậy việc thiết kế m ột g iao thức đảm bảo độ an toàn và tin cậy là vấn đề quan
trọng. Bên cạnh đó, đổi với người tấn cơ ng thì việc tìm ra sơ hở của g iao thức
cũ n g là m ột thành công.
Vấn đ ề tẩn cô n g m ột giao thức yếu, trong đó nó yếu khơng phải do
thuậl tốn m ã hố y ếu m à vì n h ữ n g thiểu sót trong việc thiết kế giao thức, đà
được nghiên cứu và nhiều kết quả đã đư ợc công bố trên thế giới. Đối với m ột
đơn vị n g h iên cứu về các hệ thố ng m ật mã, thì đây là một trong nhữ ng vấn đề
cần thiết, làm cơ sở ch o n h ữ n g nghiên cứu tiếp theo về các hệ thống m ật mă.
T ừ việc ph ân tích n h ữ n g th iếu sót trong thiết kế 2 ,iao thức m ật m ã sẽ rút ra
n hừ n g chỉ dẫn cần thiết để phát triển các eiao thức tốt. Vì vậy, là người cơng

tác ở một đơn vị nghiên cứu về các hệ thống mật mã tôi xin được đăng ký

thực hiện đề tài: ’’Nghiên cứu những phương pháp tấn công giao thức yếu
sử dụng mật mã khố cơng khai" cho luận văn tốt nghiệp thạc sĩ của mình.


Tran li 6

Mục tiêu của đề tài là nghiên cứu cơ sở lv thuyết và các phương pháp
tấn công giao thức yếu, xảy dựng chương trình mơ phỏng việc tân cơng giao
thức sử dụng hệ mật mã khố cơng khai RSA có modul chung (là một trong
nhùng tấn cơng hay và bố ích). Tuy nhiên để tránh việc hiểu lầm ràng các hệ
thống mật mâ khố đổi xứng khơng có các điếm yếu trong sử dụng, trong luận
văn còn nêu ra các giao thức sử dụng DES thất bại trong việc xác thực.
Luận văn gồm phần mở đầu, phần kết luận, ba chương chính, tài liệu
tham khao và phần phụ lục. Trong đó,
Chương 1. NGHIÊN cứu HỆ MẬT KHỐ CƠNG KHAI

Chương 2. NGHIÊN cửu CÁC PHƯƠNG PHÁP TÁN CÔNG GIAO
THỨC U
Chương 3. VỀ VIỆC LẬP TRÌNH MƠ PHONG PHƯƠNG PHÁP
TÁN CƠNG GIAO THÚC sử' DỤNG HỆ MẬT MẢ KHỐ
CƠNG KHAI RSA c ó MODUL CHUNG
Phụ lục là các chương trình mô phỏng phương pháp tấn công giao thức
sứ dụng hệ mật mã khố cơng khai RSA có modul chunR.
Cuối cùng, tôi xin chân thành cảm ơn thầy giáo hướng dẫn TS. Nguyễn
Ngọc Cương, người đã trực tiếp hướng dẫn tôi viết luận văn thạc sĩ này. Tôi
cũng xin chân thành cảm ơn tất cả các thầv cô trong khoa Công nghệ thông
tin, Viện Công nghệ thông tin đã trang bị cho tơi nhùng kiến thức cơ bản đế
tơi có thế hoàn thành được luận văn. Xin chân thành cảm ơn các bạn bè, đồng
nghiệp, những người đã có rất nhiều ý kiến đóng góp, giúp đờ tơi trong q
trình làm luận văn. Và tơi xin bày to lịng biết ơn đến nhừng naười thân trong
gia đình đã ln dành cho tôi sự quan tâm và động viên.


Trang 7

CHƯƠNG 1 - HỆ MẬT MẢ KHOÁ CỒNG KHAI

T ro n g mơ hình m ật m ã cổ điển, người gửi và người nhận cùn g chọn
m ột kh ố K bí mật, sau đó d ù n g K đê tạo thuật toán lập m ã e K và thuật toán
giái m ã clK. C ác hệ m ật thuộc loại này còn được gọi là các hệ m ật khố bí m ật
vì việc đế lộ eK sẽ làm cho hệ th o n g m ất an toàn. N hư ợc điêm cùa hệ mật này
là nó u cầu phải có th ơ n g tin trước về khoá K giữa người gửi và người nhận
qua m ộ t kênh an toàn trư ớ c khi gửi m ột bản mã bất kỳ.
C hính vì vậy, náy sinh V tư ớ n g xây d ự n g m ột hệ mật m ã sao cho biết
dược phần cơng khai củ a khố K và thuật tốn lập m ã ÜK vẫn rất khó giải mã,
và ih ư ờng là khó tìm đư ợc phần khoá giải m ã K dù thuật toán giải m ã có thể

dược biết.
T ừ cuối nh ữ n g năm 70, các nhà lập m ã đà phát triển các hệ m ật mã có
độ mật đ ư ợ c bảo đảm b àn g độ phức tạp tính toán. Nhừna, thuật toán mật mã
này yêu cầu khả năng tính tốn phức tạp khi tấn cơng và đư ợc thiết kế để
chố ng lại sự tấn côn g củ a các đối thú có thời gian giới hạn. T ro n g các hệ mật
m ã này, phần k h o á lập m ã và phần khoá giải m ã khác nhau, trong đó phần
khố lập m ã, thuật tốn lập mã, thuật tốn giải mã là cơ n g khai cịn phần khố
giải mã là bí mật. Và hệ th ố n g này được gọi là hệ mật mã k ho á côn g khai.
N ăm 1977, Ron Rivest, Adi S ham ir và Len A dlem an[5] đã đề xuất hệ
m ật mã k ho á cơng khai đ ầu tiên, đó là hệ mật m à R SA nổi tiếng. Kẻ từ đó đà
có m ột số hệ m ật mã kh ố cơng khai được công bố, độ mật của c h ú n g dựa


Tran a 8

trên các bài tốn tính tốn khác nhau. Trong đó, quan trọng nhất là các hệ mậl
sau:

- Hệ mật RSA: độ bảo mật của nó dựa trên độ khócủa việc phân tích ra
thừa số ngun tổ các số nguyên lớn.
- Hệ mật McEliece: Hệ này dựa trên lý thuyết mã đại số và vẫn được
coi là an toàn. Hệ mật McEliece dựa trên bài toán giải mã cho các mà
tuyến tính (là bài tốn NP - đầy đủ).
- Hệ mật Elgamal: Hệ Elgamal dựa trên tính khó giải của bài toán
logarit rời rạc trên các trường hữu hạn.

- Hệ mật Chor - Rivest: Hệ Chor - Rivest thuộc vào hệ mật xếp balơ,
dựa trên tính khó giải của bài toán tổng các tập con (bài toán này là bài

toán NP - đầy đủ - thuộc vào một lớp khá lớn các bàitốn khơng có các

thuật giải được biết trong thời gian đa thức).

- Hệ mật trên các đường cong Elliptic.

Trong chương này, chúng ta sẽ đề cập đến hai hệ mật mã khố cơng
khai được sử dụng nhiều nhất là Hệ mật RSA và Hệ mật Elgamal.
Theo cách đặt tên truyền thống, ta đặt Alice, Bob để chỉ 2 thành viên
muốn truyền thơng cho nhau cịn Oscar hay Marvin đế chỉ kẻ tấn công muốn
nghe trộm hoặc giả mạo trong q trình truyền thơng giữa Aỉice và Bob.


Trang 9

1.1. H Ệ M Ậ T M Ã RSA

Hệ mật mã RSA được sử dụng để cun» cấp sự báo mật và đảm bảo tính
xác thực cua dừ liệu số. Hiện nay RSA được sư dụng trong nhiều hệ thong
thương mại. Các dịch vụ web server và web browser sử dụng nó đê đảm bảo
an tồn việc truyền thơng web, nó được sử dụng để đám báo bảo mật và xác
thực của Email, đảm báo an toàn cho các phiên truy nhập từ xa và là bộ phận
quan trọng của các hệ tlìống thanh tốn thẻ tín dụng điện tử. Tóm lại, RSA
thường được sir dụng trong các ứne. dụng cần sự bảo đám an toàn và bảo mật
dữ liệu số.

1.1.1 Mô tả hệ mật RSA

Trước tiên, ta hãy nhắc lại định nghĩa hệ mật.
Một hệ mật là một bộ 5 (p, c -K £, $) thoả màn các điều kiện sau:
1


. p là một tập hữu hạn các bàn rõ có thể.

2

. c\ằ tập hữu hạn các bản mã có thể.

3. .^(khơng gian khố) là tập hữu hạn các khố có thể.
4. Đối với

mồi

K e J(cị m ột

quy

tắc mà eK: p~> ỚVà một quy tắc giải

mà tương ứng dK e 'ĩò. Mồi eK: p c và dK: c -> p\à những hàm mà
dis(eK(x)) = Xvới mọi bản

rõ X G p.


Tra nụ 10

Hệ mật mà RSA[5] sừ dụng các tính tốn t r o n g z,„ trong đó n là tích
của hai số nguyên tố phân biệt p, q và (ị)(n) = (p-1 )(q-l ). Mơ tả hình thức của
hệ mật này như sau:

Cho n = p.q trong đó p và q là các số nguyên tố khác nhau.

Đặt p= c= znvà định nghĩa J(= {(n,p,q,a,b): ab = l(modệ(n))}
Với K = (n,p,q,a,b) ta xác định:
eK(x) = xbmod n
dK(y) = y*1modn


trong đó ( x , y e

z„).

Các giá trị n, b c ơ n g khai cịn các giá trị p, q, a g iữ bí mật.

Ta hãy kiếm tra xem các p hép m ã và giải m ã có phải là các phép tốn
nghịch đ ảo của nhau hay khơng.
Vì ab = l(mod<Ị)(n)) nên ta có ab = t.ệ(n) + 1 với m ột số nguyên t > 1
nào đó. G iả s ử X €

zn;

a. T rư ờ n g hợp (x,n) =1 —> x ^ '1’ m o d n = 1.
Khi đó ta có:

ya m o d n = (x b)a m od n

= x lệ(n)+l m od n
= ((xộ
= 11 .X (mod n)
= X (mod n)



i ra ng 11

b. Trường hợp (x,n)= d> 1 -» d = p hoặc d = q.
G i á sir d = p , k h i đ ó X = h p v ớ i 0 < h < q v à ( h ,n ) = 1, s u y ra:

ya modn = (xh)a mod n s (habmodn)( pahmodn) modn
Do (h,n) = 1 nên h llh m o d n = h

Bên cạnh đó,
p“bmodn = pabmod(p.q) = pab mod q
= p . p ^ ’m od q

= p.p^^m od q
= p .(p l|)(p,)ộíq)m od q

Vậy

yil modn =

h.p

= p

modn = h.p = X.

1.1.2 Thục thi hệ RSA
De thiết lập hệ thống, Bob sẽ tuân theo các bước sau:
1. Bob tạo hai số nguyên tố lớn p và q.
2. Bob tính n = p.q và ệ(n) = (p-l)(q-l)

3. Bob c h ọ n m ộ t số ngẫu n hiên b (0 < b < ệ(n)) sao cho

UCLN (b, Ộ(n)) = 1
4. Bob tính a = b’ 1 mođ(Ị)(n) bằng cách dùn^ thuật tốn Euclide và
giữ bí mật.
5. Bob cơn g bố n và b tron g m ột thư mục và dùng chúng làm khố

cơng khai.


Trang 12

Sau đây là một ví dụ về cách thức thực hiện cua hệ RSA (tất nhiên
không mật).
Giả sử Bob chọn p = 101 và q = 113. Khi đó n = 11413 và <Ị)(n) = 100 X
112 =11200. Bob chọn ngẫu nhiên một số b và kiểm tra điều kiện ƯCLN
(ệ(n), b) = 1 bằng thuật toán Euclide. Gia sir Bob chọn b = 3533, khi đó theo
thuật tốn Euclid mờ rộng: b' 1 = 6597 mod 11200.
Bởi vậy, số 1 Ĩ 1 Ũ bí mật đề giải m ã cùa Bob là a —6597.

Bob sẽ công bổ n = 11413 và b = 3533 trong một danh bạ khố cơng
khai.

Bây giờ, giả sử Alice muốn gửi bản rõ X= 9726 tới Bob. Cơ ta sẽ tính:
9726 3533 mod 11413 = 5761
rồi gửi bản mã 5761 trên kênh.
Khi Bob nhận được bản mã 5761, anh ta sứ dụng số IĨ1Ũbí mật a đê tính
ra x:

57616597mod 11413 = 9726.

1.1.3 Đơ• an tồn của hê• RSA
Độ an tồn cúa hệ RSA được dựa trên eiá thiết là hàm mã Ck(x) = xb
mod n là hàm một chiều. Bởi vậy thám mã sẽ khơna, có khả năng về mặt tính
tốn đ ể giải m ã đ ư ợ c m ột bản mã. Cửa sập cho phép Bob giải m ã được chính
là thơng tin về phép phân tích thừa sổ n (n=p.q). Vì Bob biết phân tích này,
anh ta có thế tính ệ(n) = (p-l).(q-l) và rồi tính số mũ giải mã a bằng cách sử
dụng thuật toán Euclide mở rộng.


Trang 13

Cách tấn công dề thấy nhất đối với hệ mật này là thám mã cơ găng
phân tích n ra các thừa số nguyên tố. Nếu thực hiện được phép phân tích này
thì có thể dễ dàng tính được ệ(n) = (p-1 ).(q-l) rồi tính số mủ a từ b đúng như
Bob làm.
Vì thế để hệ RSA được coi là an tồn thì nhất thiết n = p.q phái là một
số du lớn để việc phân tích nó sẽ khơng có kha năng về mặt tính tốn. Các
thuật tốn phân tích hiện thời có khả nâng phân tích các số tới 130 chữ số
thập phân. Vì vậy đế đảm báo an tồn nên chọn các số p và q có khoảng 100
chừ số, khi đó n sẽ có tới 200 chữ số. Ngoài ra các số p, q cần phải thố mãn
một sơ u câu cụ thể nừa.

1.2. HỆ MẬT MÃ ELGAMA
í .2.1 Mơ tả hệ mật Elgamal

Hệ mật Elgamal[5] được đề xuất từ năm 1985, dựa trên bài toán logarit
rời rạc là bài toán được dùng nhiều trong nhiều thù tục mật mã. Chúng ta sẽ
bắt điầi bằng việc mơ tả bài tốn này khi thiết lập một trường hữu hạn Zp, p là
số ngu/ên tố.
3ài toán logarit rời rạc trong Zp:


ỈĐic trưng của bài toán: I =(p, a, P) trong đó p là số nguyên tố,
(Oie Zp là phần tử nguyên thuỷ, [3 e Zp\
ĩVục tiêu: Hãy tìm một số nguyên duy nhất a, 0 < a < p-2 sao cho a “
== 3 (m o d p)

TTV


TrangG? 14

Elgamal đã phát triển một hệ mật khố cơng khai dựa trên bài toán
logarit rời rạc. Hệ thống này được trình bày trong hình dưới đây.
C'ho p là số nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó
giái.
Cho a e Zp* là phần tử nguyên thuỷ. Giả sử p~ Zp*, c= Zp*x Zp .
{(p, a, a, P) : p = à' (modp)}

Ta định nghĩa:

Các giá trị p, a, p được cơng khai, cịn a giũ' bí mật.
Với K = (p, a, a, P) và một số ngẫu nhiên bí mật ke Zp.|, ta xác định:
eK(x,k) = (yi, y2).
trong đó:


yi = otk(modp)
y2 = X . pk(modp)


với y], y2 e Zp* ta xác định:
d K( y

I, y2 ) =

y 2 ( y i ay '

mod p

Hệ mật Elgamaỉ là một hệ mật khơng tất định vì bàn mã phụ thuộc vào
cả

bán mã X lẫn giá trị ngầu nhién k do Alice chọn. Bởi vậy, sẽ có nhiều bản

mà được mã từ cùng bản rõ.
Dề thử lại rằng dK(yI, y2) - x- số ngầu nhiên k do người lập mã tự chọn
và không cần thông báo dưới bất kỳ dạng nào cho người nhận, tuy nhiên nó là
cần thiết và cần được giữ kín để bảo mật dối với ncười thám mã.


Trang 15

1.2.2 Thực thi hệ Elgamal
Bản rõ X được che dấu bàng cách nhân X với |3kđế tạo ra y2. Giá trị yi =
«k cùng được gừi đi như một phần cua ban mà. Bob là người biết số mù bí
mật a có thể tính được ị3k từ otk. Sau đó anh ta sẽ tính ra X bàng cách nhân y2
với p ' k đế thu đ ư ợ c X.

Ví dụ:
Cho p = 2579, a = 2, a = 765. Khi đó:

p = 2765 mod 2579 = 949.
Bây giờ giả sứ Alice muốn gửi thông báo X= 1299 tới Bob. Giả sử số
ngầu nhiên k mà cô chọn là k = 853. Sau đó cơ ta tính:
y, = 2853 mod 2579 = 435


y 2 = 1299 X 949853 mod 2579 = 2396.

Khi Bob thu được bán mã y = (435,2396), anh ta tính:
X = 2396 X (4 3 5 765)*1 mod 2579 = 1299

Đó chính là bản rõ mà Alice đã mã hố.
1.2.3 Độ an tồn của hệ Elgamal
Hệ mật Elgamal được xây dựng trên bài toán logarit rời rạc. Lợi thế của
bài toán logarit rời rạc trong xây dựng hệ mật là khó tìm được các logarit rời
rạc, song bài tốn ngược lấy luỹ thừa lại có thế tính tốn hiệu q theo thuật
tốn nhân và bình phương. Nói cách khác, luv thừa theo modul p là hàm một
chiều với các sổ nguyên tổ p thích hợp.


'IranLĩ. if)

Bài toán logarit rời rạc trong Zp là đổi tượng trone nhiều công trinh
nghiên cứu vả được xem là bài tốn khó nếu p được chọn cẩn thận. Cụ thể là
khơnu có một thuật tốn thời £Ìan đa thức nào cho bài tốn logarit rời rạc.
Vì thế đế hệ Elgamal được coi là an tồn, đổi phó với các phương pháp
tấn cơng đà biết, p phái có ít nhất 150 chừ số và (p-1 ) phải có ít nhất một thừa
số nguyên tố lớn, a là phần tử nguyên thuỷ theo moduỉ p sao cho bài tốn tính
loguị3 là khó. Bên cạnh đó, việc giữ bí mật số k là rất quan trọng vì nếu biết k
sè tìm được số mù bí mật a.


1.3 LƯỢC ĐỒ CHỮ KÝ SĨ RSA
Lược đồ chừ ký số RSA tương tự như hệ mật RSA nên ta khơng trình
bày ở đây.


Trang 17

1.4 LƯỢC ĐỒ CH Ũ KỶ SÓ ELGAMAL
Lược đồ chừ kv Elgamal được mô ta như sau:
Cho p là sổ nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó
và giả sử a e Zp* là phần tử nguyên thuỷ.
Cho P- Zp\ J ì- Zp* Zp.| và định nghĩa:
X

K = {(p, a, a, p) : p s a a (modp)}

Các giá trị p, a, p là cơng khai, cịn a là bí mật.
Với K = (p, a, a, (3) và một số ngẫu nhiên bí mật ke Zp„i*, ta định
nghĩa chữ ký sổ: sigK(x,k) = (y,ỗ)
tro ng đó:

Y = a k m ođp



5 = (x - ay). k' 1 mod(p-l )

Với


X, Y

e Zp và ỗ € Zp.| , ta kiểm thử chừ ký số: ver(x, Ỵ, ô) là đúng

kh i

và chỉ

kh i:

(3Y
yờ= a N(m odp)

r


Trang 18

CH ƯƠNG 2 - NGHIÊN c ử u CÁC PHƯƠNG PHÁP TẤN CƠNG GIAO
THỨC U

Khi một thuật tốn mật mã được sứ dụng đê bao mật hay xác thực dữ
liệu, nó sè nằm trong khn khồ một giao thức xác định, thích hợp đê xứ ỉý
dừ liệu. Chính vì vậy, từ khi hệ mật mã khố cơng khai ra đời đã có rất nhiều
giao thức được thiết kế đề nâng cao độ tin cậy và xác thực. Mục đích của giao
thức là đảm bảo thuật toán mật mã sẽ thực sự cung cấp sự bảo mật hay xác
thực mà hệ thống yêu cầu. Trong chương này chúng ta sè nghiên cứu một số
uiao thức không đạt được những mục đích như vậy mà ngun nhân khơng
phái là do sử dụng thuật tốn mã hố yếu mà vì nhìrng thiếu sót trong việc
thiết kể giao thức. Những chỉ dẫn đế phát triển các giao thức tốt cũng được rút

ra từ việc phân tích những sai sót này.
Trước khi đi vào nội dung chính, chúng ta hãy xem xét các kiểu tấn
cơng mật mã cơ bán.
2.1 CÁC KIẺƯ TẤN CƠNG THÁM MẢ
Phẩn này sẽ Irình bày một vài kiểu thám mã. Giả thiết chung ở đây là
luôn coi đổi phương biết hệ mật đang dùne. Giả thiết nàv được gọi là nguyên
lý Kerekhoff[5]. Dĩ nhiên, nếu đối phương không biết hệ mật được dùng thì
nhiệm vụ cúa anh ta sẽ khó khăn hơn.Tuy nhiên ta khôno, muốn độ mật của
một hệ mật lại dựa trên một giả thiết không chắc chắn là đối phương không


Trang 19

biết hệ mật được sử dụng. Do đó, mục tiêu trong việc thiết kế một hệ mật là
phải đạt được độ mật dưới giả thiết Kerekhoff.
Việc thám mà có thê quy về việc tìm được ban rõ hoặc phát hiện khoá
mã, khi biết trước hệ mật mã được dùng. Ngồi việc biết hệ mật mã, người
thám mà cịn cần có thơng tin khác đê tim ban rõ và phát hiện khố. Tuỳ theo
thơng tin dó là gì mà ta phân các bài toán thám mà thành các loại: chỉ biết bản
mã, biết các cặp rõ/mă, có bản rõ được chọn và có bản mă được chọn.
2.1.1 Tấn cơng chỉ biết bản mã
Naười thám mã chi biết các bản mã Cj = eK(mi), c 2 = CkOth),

Ci =

eK(nij), mà không biết i bản rõ tương ứng khác nhau cũng như khố mã. Anh
ta muốn tìm khố K, nếu khơng thì cũng cần tìm các bản rõ 1T1|, m 2,

111,.


2.1.2 Tấn công các cặp rõ/mã đà biết
N g ư ờ i th á m

m ã b i ế t c á c b ả n m à C |, C'2,

Cj n h ư t r ê n , n h ư n g c ũ n g b iế t

các bản rõ tương ứng mi, m2, ..mị. Anh ta cổ tìm khố K, nếu khơng thì cổ
phỏng đốn bản rõ iTVi từ bản mã mới e|(| = eK(m,, |) được mâ bới cùng khố
K.

2.1.3 Tấn cơng bản rõ lựa chọn
Người thám mã được quyền truy nhập tạm thời vào cơ chế mã hố, nên
anh ta có thê chọn các bản rõ rriị, m 2, ..ni, và có được các bản mã tương ứng C]
= e R( m , ) , c 2 = e K( i r i 2 ),

Cj = e K( m j ) , t ừ đ ó

anh ta s ẽ

phỏng

đốn khố K

và có

thê tìm đư ợc bản rõ n v i từ m ột vài bán mã mới Cj,| = eK.(mi+i) cũ n g được mã

bơi cùng khoá K.



I rang 20

2.1.4 Tấn công ban mã lụa chọn

Người thám mà được quyền truy nhập tạm thời vào cơ chế giải mà, nên
từ các bản mã C|, C'2, Ci anh ta nhận được các bản rõ tương ứng IT1|, ni2,.. , mị
từ đó anh ta sẽ phong đốn khố K và có thê tìm được bản rõ nij+i từ một vài
bán mã mới Cj+| = e«.(mi( i) cũng được inâ bởi cùng khoá K.
Trong mồi trường hợp đối tượng cần phải xác định chính là khố đã sử
dụng. Rõ ràng 4 mức độ tấn công (thám mã) trên đầ được liệt kê theo độ tăng
cua sức mạnh tấn công và cách tấn công các bản mà được lựa chọn là thích
hợp đối với hệ mật mã khố cơng khai.

2.2 NGHIÊN CỨU CÁC PHƯƠNG PHÁP TẤN CÔNG GIAO THỨC YÉU
2.2.1 Một số sơ suất dẫn đến tấn cơng hệ RSA

Tính bảo mật của RSA chủ yếu dựa vào việc giừ bí mật số mũ giải mã
a và các thừa số p, q của n. Ta thử xét một vài trường hợp xâm phạm tới các
yếu tố bí mật đó.

a. Biết ệ(n) tìm được p và (Ị
Biết ộ(n) thì có thể tính p, q theo hệ phương trình:
p.q = n

p.q = n
p + q = n + 1 - ộ(n)

Do đó p và q là nghiệm của phương trình bậc hai:
X2 - (n-



'I’rang 2 1

Bới vậy nếu thám mã biết được ộ(n), anh ta có thế phân tích được n và
phá được hệ mật.

b. Biết số mũ giai mã tì
Nếu biết số mũ giải mã a thì coi như đã làm xong việc thám mã, nên
việc tìm được p, q cùng khơng còn ý nghĩa đối với việc thám mã nữa. Tuy
nhiên, điều này có một ý nghĩa quan trọng hơn đó l nu i phng bit a thỡ
khụnỗ ch phi thay số mù giải mã khác mà còn phái chọn modul n khác, vì
khi đó đối phương cùng có thề biết p, q, do dó biết cách tìm khố giải mã a
bất kỳ, nếu khoá lập mã vẫn giữ modul n, n^p.q.
Ta sè chứng minh rằng biết số 1Ĩ1Ũgiải mã a sẽ tim được các thừa sổ p,
q củ a n.

Do a.b = 1 mod <Ị)(n) nên a.b - 1 = l.ộ(n) = k.
Do ộ(n) là một số chẵn nên ta có thể viết k dưới dạne k = 2l.r (với r là
số lé)

và t >

1.

Theo định lý ơle: với Va mà (a,n)=l thì p,nl modn = 1, do đó, ta có:
Vg G

z


n th ì g k =

1 m o d n ( d o k là b ộ i c ủ a c p (n )) v à d o đ ó g k"2 là c ă n b ậ c h a i

của I theo modul n,
Theo định lý phần dư Trung hoa, 1 có 4 căn bậc hai modul n=p.q. Hai
c ă n b ậ c h a i là ±

1. H a i c ă n b ậ c h a i k h á c là ± X ( x = 1 m o d p v à X = -1 m o d q )

( 1 < < p). Sử dụng một trong hai căn bậc hai khơnu tầm thường này sẽ tìm
được p, q trong thời gian đa thức bàng cách tính gdc(x-l,n).
X

X2 = 1 m od n <=> (x-1 )( x + l ) = 0 mod n -> (x-1 )(x+ Ị ) chia hết cho n.


Trang 22

Dặt (x-1, n) = di và (x+1, n) = d2.


n = p.q và X

±

ị, 0 <

X < n,


nên:

x-1 * 0 và 0 < x-l < n

x+l^ n và 0 < x+l< n
Suy ra d, hoặc d2 phải khác 1 v à

do

n =p.q nên một trong hai giá trị d|

và d2 chính là p hoặc q.
2.2.2 Một sơ suất dẫn đến tấn công hệ Elgamal

Khi người sử dụng làm lộ giá trị ngẫu nhiên k, Oscar dễ dàng tìm được
bản

rõ x:
Do y 2 = X . pk mod p, trong đó biết y2, 3, k, p; nên giải phương trình

dồng dư tuyến tín h này sẽ tìm được X = y 2p 'k modp.

2.2.3 Một số SO’suất làm tổn thưong lược đồ chừ ký Elgamal

a. Ngirời sử dụng làm lộ giá trị ngẫu nhiên k
Nếu biết k, Oscar có thể dễ dàng tính được số bí mật a nhờ giải phương
trình sau:
ơa = (x - ky) mod (p-1 )
Nếu phương trình có nhiều nghiệm thì nghiệm đúng của a thoả mãn
đăne thức p = a a modp.

Khi a bị lộ thì Oscar dễ dàng giả mạo chừ ký.


1 rang 23

b. Ngirờì sử dụng (ỉùng một số k ngẫu nhiên đế ký hai thông báo khác nhau
Nếu người

sử

dụng dùng cùng một số k đê ký hai thông báo khác nhau

sẽ tạo thuận lợi cho Oscar tính a. Trước hết, ta có:
Yi = Ĩ2 - Y = a k modp

Giả sử (y,ỗ|) là chừ ký trên X| và (y,Õ2) là chừ ký trên x2. Khi đó ta có:
ồ| = (X| - a y)k ‘' m o d (p -1 )
ỏ 2 = (X 2 - a y)k'' m od (p -1 )

Từ đây suy ra phương trình:
X| - x2 = k(ô| - ỗ2) mod (p -l)
hay

( ô ) - ô ? ) k = ( X | - x 2) m o d ( p - 1 )

Phương trình này có nghiệm vì k đã được dùng để thiết lập nên nó.
Việc giải phương trình này đã được biết. Ký hiệu d = (ơ| - 62 , p-1). Phương
trình này có d nghiệm k|,

kt|.


Trong d giá trị có thê này, Oscar có thể xác định được một giá trị đúng
duy nhất qua việc kiểm tra điều kiện

Y = a k modp.

2.2.4 Giao thức công chứng
Giao thức công chứng là giao thức được thiết kế cho phép một văn bản
sau khi A ký, người khác có the xác thực được rằng văn bản này thực sự được
ký bởi A (nó giống như việc công chứng viên ký chừ ký của mình lên bản
cơng chứng nên người ta gọi nó là giao thức công chửng).


Trang 24

Đề thiết lập giao thức công chúng, A phai chọn các tham số RSA: các
số nguyên tố p, q và các số ỈĨ1Ũ mã hoá e và giải mã d thoả mãn: e.d=l mocỉ

<Ị)(n), tronR đó n = p.q. Các giá trị n, e là cơng khai, cịn p, q và d được A giữ
bí mật.
Đè ký một văn bán M, A sứ dụng số mũ bí mật d đê tính chừ ký: s =
vr' mod n. Bất cứ ai cũng có thế sứ dụng nhừng thơng tin cơng khai của A đế
kiém thử xem s có thực sự là chừ ký của A trên M hay không bằng cách tính
sc mod n và so sánh với M. Vì chi có A biết giá trị d, giá trị được dùng đê tạo
ra s nên giao thứ c c ô n g ch ứ n g k h ắ n g định rằng chỉ có m ột m ình A mới có thế

tính ra s.
Tuy nhiên, Davida và D enning[7] đã chỉ ra rằng, có thế tạo ra được chữ
ký giả mạo cúa giao thức này. Sau đây là một phương pháp đế thực hiện điều
đỏ .


Bob có khố bí mật là d và khố cơng khai <n,e>. Giá sử Marvin muốn
có được chừ ký của Bob trên một văn bán M e z*n . Khi đó Marvin có thể
thực hiện theo cách sau: lẩy một số ngẫu nhiên r e z*n, tính M' = rcM mod n,
và đề nghị Bob ký M\ Nếu Bob ký S' trên văn bản M' thì Marvin có thể dề
dàng tính được chừ ký s của Bob trên M: s = S', r ■' mod n.
Vì, từ S' = (M')d mod n = (rcM)dmod n = rcd. Md mod rì = r.s mod n
Suy ra s = f ’.S' mod n và s thực sự là chữ ký của Bob trên M.
Thực vậy:
se = (S')c/r° (mod n) = (M')cd/rc (mod n) = MVr° (mod n) = M (mod n)


ĩrang 25

Kỹ thuật trên gọi là kỹ thuật che khuất (blinding), cho phép Marvin lấy
dược một chữ ký hợp pháp trên một văn bản anh ta muôn băng cách yêu câu
Bob ký trên một văn bản "được che khuất" ("blinded") ngẫu nhiên. Bob
khơng có thơng tin gì về văn bán anh ta dang thực sự ký.
Kết quả cùa kỹ thuật này dựa trên một thực tế là RSA sứ dụng một hàm
tốn học {hàm mũ) bảo tồn phép nhân các giá trị đầu vào để ký. Điểm mấu
chốt của cách tấn công này là nếu chọn X, M, d và n bất kỳ thì:
(XM)d= xdMd mod n, tức là sigk(X.M) = sigk(X).sigk(M).
Vậy đế ngăn cản việc tấn côns vào giao thức công chứng bằng kỹ thuật
che khuất, ta phải huý bỏ khả năng sử dụng tính báo tồn của phép nhân của
kè định giả mạo chừ ký. Một trong nhừng cách đó là áp dụng hàm "hash một
chiều" trên văn bản M trước khi ký và kỹ thuật này được áp dụng trong nhiều
ứng dụng thực tế của RSA (ví dụ như thanh toán điện tử ẩn danh).
2.2.5 Giao thức niodul chung và các phương pháp tấn cơng

Tình huống dẫn đến việc sử dụng RSA có sổ modul chung xảy ra như

sau: khi trong hệ thống có k người đăng ký sử dụng RSA, để việc q u á n lý phân phối khoá được đơn giản, trung tâm sẽ sinh ra 2 sổ ngun tổ p, q; tính
sơ modul n = p.q; sinh ra các cặp khoá mã hoá/giải mã {ej, dị} sau đó cấp cho
người đăng ký thứ i trong hệ thống khố bí mật dj tương ứng, cùng các thông
tin công khai bao gồm số modul n và một danh sách đầy đủ khố cơng khai
{ei} (i=l..k).
Bât kỳ người nào có thơng tin cơng khai này đều có thể mã hố văn bản
M đê g ử i cho người đăng ký thứ i bằng cách sư đụne thuật toán mã hoá RSA
với khoá mã eL: Y - Me>mod n rồi gửi Y... Hoặc người dăng ký thứ i có thể ký


×