Giáo trình Lý thuyết mật mã và an toàn thông tin - Phan Đình Diệu (Phần 2)

Tóm tắt Giáo trình Lý thuyết mật mã và an toàn thông tin - Phan Đình Diệu (Phần 2): ...84. Một hệ nh− vậy đ−ợc cho bởi một danh sách S = (P , C , K , E , D, R ), trong đó P ={0,1}, C = R = nZ ∗ , n =p.q là tích của hai số nguyên tố lớn, K là tập hợp các bộ khoá K = (K', K''), trong đó khoá công khai K' = (n ,m) với m ∈jn nQ J Qn= − là một giả thặng d− bậc hai modn, và khoá...ng nhau. 5.4. Một số sơ đồ chữ ký khác. 5.4.1. Sơ đồ chữ ký Rabin. T−ơng t− nh− sơ đồ chữ ký RSA, sơ đồ chữ ký Rabin cũng sử dụng số nguyên n là tích của hai số nguyên tố lớn p và q, n =p.q , với hàm một phía ở đây là hàm lấy bình ph−ơng của một số nguyên theo modn, có hàm ng−ợc là hàm ... chọn thêm một số b là số nguyên tố có độ lớn khoảng 240 nh− là một tham số an toàn. Số b cũng đ−ợc xem là số mũ thoả mãn điều kiện RSA, nghĩa là việc tính v =ub modn là dễ, nh−ng việc tính ng−ợc u từ v là rất khó, nếu không biết p,q. Thủ tục cấp chứng chỉ cho một ng−ời tham gia A đ−ợc tiến...

pdf73 trang | Chia sẻ: havih72 | Lượt xem: 261 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Lý thuyết mật mã và an toàn thông tin - Phan Đình Diệu (Phần 2), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
một số nguyên tố p ≥ n, và chọn cho mỗi ng−ời 
dùng A một số rA∈Zp . Số p và các số rA đ−ợc công bố công khai. 
 Sau đó, TA chọn ba số ngẫu nhiên a,b,c ∈ Zp , và lập đa thức 
 ( , ) ( )f x y a b x y cxy= + + + modp. 
Với mỗi ng−ời dùng A, TA tính ( ) ( , )A A A Ag x f x r a b x= = + modp, 
trong đó . TA chuyển bí mật 
cặp số 
mod , modA A A Aa a br b b cr= + = +p p
( , )A Aa b cho A; nh− vậy, A biết ( )A A Ag x a b x= + . So với việc 
TA phải truyền bí mật n (n -1) l−ợt khoá kể trên thì với sơ đồ Blom, 
TA chỉ phải truyền n l−ợt các cặp số ( , )A Aa b mà thôi. 
 Sau khi đã thực hiện xong các công việc chuẩn bị đó, bây giờ 
nếu hai ng−ời dùng A và B muốn tạo khoá chung để truyền tin 
bằng mật mã cho nhau, thì khoá chung K A,B đó sẽ là : 
 , ( ) ( ) ( , ),A B A B B A A BK g r g r f r r= = = 
mà mỗi ng−ời A và B tính đ−ợc bằng những thông tin mình đã có. 
 153 
 Nh− vậy, theo sơ đồ phân phối này, TA phân phối cho mỗi 
ng−ời dùng một phần bí mật của khoá, hai ng−ời dùng bất kỳ phối 
hợp phần bí mật của riêng mình với phần công khai của ng−ời kia 
để cùng tạo nên khoá bí mật chung cho hai ng−ời. Sơ đồ này là an 
toàn theo nghĩa sau đây: Bất kỳ một ng−ời thứ ba C nào (kể cả C là 
một ng−ời tham gia trong mạng) có thể phát hiện đ−ợc khoá bí mật 
riêng của hai ng−ời A và B. Thực vậy, dù C có là ng−ời tham gia 
trong mạng đi nữa, thì cái mà C biết nhiều lắm là hai số do 
TA cấp cho. Ta chứng minh rằng với những gì mà C biết thì bất kỳ 
giá trị l ∈ Z
,C Ca b
p nào cũng có thể đ−ợc chấp nhận là K A,B . Những gì mà 
C biết, kể cả việc chấp nhận l = K A,B , đ−ợc thể hiện thành 
( )A B A B
C C
C C
a b r r cr r l
a br a
b cr b
+ + + =
+ =
+ =
Hệ thống ph−ơng trình đó, nếu xem a,b,c là ẩn số, có định thức các 
hệ số ở vế phải là 
1
1 0 ( )( )
0 1
A B A B
C C A C
C
r r r r
r r r r
r
+
Br= − − , 
theo giả thiết chọn các số r , định thức đó khác 0, do đó hệ ph−ơng 
trình luôn có nghiệm (a,b,c), tức việc chấp nhận l là giá trị của K A,B 
là hoàn toàn có thể. Bất kỳ giá trị l ∈ Zp nào cũng có thể đ−ợc C 
chấp nhận là K A,B , điều đó đồng nghĩa với việc C không biết K A,B là 
số nào! 
 Tuy nhiên, nếu có hai ng−ời tham gia C và D, khác A,B, liên 
minh với nhau để phát hiện K A,B , thì lại rất dễ dàng, vì cả C và D 
biết 
C C
C C
D D
D D
a br a
b cr b
a br a
b cr b
+ =
+ =
+ =
+ =
Bốn ph−ơng trình đó đủ để xác định (a,b,c), từ đó tìm đ−ợc K A,B . 
 Ta có thể mở rộng sơ đồ Blom nói trên để đ−ợc một sơ đồ 
Blom tổng quát, trong đó mọi khoá chung K A,B của hai ng−ời dùng 
A và B là bí mật hoàn toàn đối với bất kỳ liên minh nào gồm k 
ng−ời ngoài A và B, nh−ng không còn là bí mật đối với mọi liên 
minh gồm k +1 ng−ời tham gia trong mạng. Muốn vậy, ta chỉ cần 
 154 
thay đa thức f (x,y ) nói trên bằng một đa thức đối xứng bậc 2k sau 
đây : 
0 0
( , ) mod ,
k k
i j
ij
i j
f x y a x y
= =
=∑∑ p 
trong đó với mọi i, j. , 0 , ,i p ia Z i j k a a∈ ≤ ≤ =j jij
7.2.2. Hệ phân phối khoá Kerberos. 
 Kerberos là tên của một hệ dịch vụ phân phối (hay cấp phát) 
khoá phiên (session key) cho từng phiên truyền tin bảo mật theo 
yêu cầu của ng−ới dùng trong một mạng truyền tin. Hệ mật mã 
đ−ợc sử dụng th−ờng là hệ có khoá đối xứng, chẳng hạn DES. 
 Để thực hiện hệ này, tr−ớc hết, cơ quan đ−ợc uỷ thác (hay 
trung tâm điều phối) TA cần chia sẻ một khoá DES bí mật KA với 
mỗi thành viên A trong mạng. Sau đó, mỗi lần A có nhu cầu truyền 
tin bảo mật với một thành viên khác B thì yêu cầu TA cấp một khoá 
phiên cho cả A và B. Việc cấp phát đó sẽ đ−ợc thực hiện bằng một 
giao thức phân phối khoá nh− sau: 
1. TA chọn ngẫu nhiên một khoá phiên K, xác định một tem 
thời gian T và một thời gian sống L (nh− thế có nghĩa là khoá 
phiên K có giá trị sử dụng trong khoảng thời gian từ T đến T +L). 
2. TA tính 
1
2
( , ( ), , ),
( , ( ), , ).
A
B
K
K
m e K ID B T L
m e K ID A T L
=
=
và gửi ( ) đến A. 1 2,m m
3. A dùng hàm giải mã 
AK
d cho để thu đ−ợc K, T,L,ID(B). 
Sau đó tính 
1m
 3 ( ( ),Km e ID A T )= , 
và gửi cho B. 3 2( ,m m )
4. B dùng các hàm giải mã 
BK
d cho m2 và dK cho m3 để thu 
đ−ợc K ,T, L,ID(A) và ID(A),T . Nếu thử thấy hai giá trị của ID(A) 
và của T trùng nhau, thì B tính tiếp 
 m 4 = eK (T +1) 
và gửi m4 cho A. 
5. A dùng hàm giải mã dK cho m4, và thử xem kết quả thu 
đ−ợc có đúng là T +1 hay không. 
 155 
 Trong giao thức kể trên, các ký hiệu ID(A) và ID(B) là chỉ cho 
danh tính của A và của B, các thông tin đó là công khai. 
 Hoàn thành giao thức gồm 5 b−ớc nói trên, TA (cùng với A 
và B) đã thực hiện xong việc cấp phát một khoá phiên K cho hai 
ng−ời dùng A và B để truyền tin mật mã cho nhau. Tất cả các việc 
trao đổi thông tin của giao thức đó đều đ−ợc thực hiện trên các 
kênh công cộng, dù khoá K vẫn là bí mật, chỉ A, B (và TA) là đ−ợc 
biết mà thôi. Ngoài việc cấp phát khoá, giao thức đó còn thực hiện 
đ−ợc việc xác nhận khoá: B và A đều tin chắc đ−ợc rằng đối tác của 
mình đã thực sự có khoá K do kết quả của việc thực hiện các phép 
thử ở b−ớc 4 và 5; thêm nữa, cả A và B còn biết đ−ợc thời hạn có 
hiệu lực của khoá. 
 Phân phối khoá bí mật theo giao thức Kerberos là có độ tin 
cậy cao, tuy nhiên trong thực tế, việc sử dụng nó cũng đòi hỏi tốn 
nhiều thời gian, nên ngày nay cũng chỉ đ−ợc dùng trong những 
tr−ờng hợp hạn chế. 
7. 2.3. Hệ phân phối khoá Diffie-Hellman. 
Hệ phân phối khoá Diffie-Hellman không đòi hỏi TA phải 
biết và chuyển bất kỳ thông tin bí mật nào về khoá của các ng−ời 
tham gia trong mạng để họ thiết lập đ−ợc khoá chung bí mật cho 
việc truyền tin với nhau. 
Trong một hệ phân phối khoá Diffie-Hellman, TA chỉ việc 
chọn một số nguyên tố lớn p và một phần tử nguyên thuỷ α theo 
modp, sao cho bài toán tính logα trong pZ
∗ là rất khó. Các số p và α 
đ−ợc công bố công khai cho mọi ng−ời tham gia trong mạng. Ngoài 
ra, TA có một sơ đồ chữ ký với thuật toán ký (bí mật) sigTA và thuật 
toán kiểm thử (công khai) verTA. 
Một thành viên bất kỳ A với danh tính ID(A) tuỳ ý chọn một 
số và tính . A giữ bí mật (0 2)A Aa a p≤ ≤ − modAaAb α= p Aa và đăng 
ký các thông tin (ID(A), Ab ) với TA. TA cấp cho A chứng chỉ 
 C(A) = (ID(A), Ab , sigTA(ID(A), Ab )). 
Các chứng chỉ của các thành viên trong mạng có thể đ−ợc 
l−u giữ trong một cơ sở dữ liệu công khai, hoặc uỷ thác cho TA l−u 
giữ và cung cấp công khai cho các thành viên mỗi khi cần đến. 
Khi hai thành viên A và B trong mạng cần có một khoá bí 
mật chung để truyền tin bảo mật cho nhau, thì A dùng thông tin 
công khai có trong C(B) kết hợp với số bí mật của mình là Bb Aa để 
tạo nên khoá 
 156 
 , mod modA B A
a a a
A B BK b α= =p p.
Khoá chung đó B cũng tạo ra đ−ợc từ các thông tin công khai Ab của 
A và số bí mật của mình: Ba
 , mod modB A B
a a a
A B AK b α= =p p.
Để bảo đảm đ−ợc các thông tin về và Bb Ab là chính xác, A 
và B có thể dùng thuật toán verTA để kiểm thử chữ ký xác nhận của 
TA trong các chứng chỉ C(B) và C(A) t−ơng ứng. 
Độ an toàn của hệ phân phối khoá Diffie-Hellman đ−ợc bảo 
đảm bởi điều sau đây: Biết Ab và để tính KBb A,B chính là bài toán 
Diffie-Hellman mà ta đã đề cập tới trong mục 4.1, ch−ơng IV: biết 
moda pα và modb pα , tính modab pα . Đây là một bài toán khó 
t−ơng đ−ơng bài toán tính lôgarit rời rạc hay bài toán phá mật mã 
ElGamal. 
7.3. Trao đổi khoá và thoả thuận khoá. 
7.3.1. Giao thức trao đổi khoá Diffie-Hellman. 
 Hệ phân phối khoá Diffie-Hellman nói trong mục tr−ớc có 
thể dễ dàng biến đổi thành một giao thức trao đổi (hay thoả thuận) 
khoá trực tiếp giữa các ng−ời sử dụng mà không cần có sự can 
thiệp của một TA làm nhiệm vụ điều hành hoặc phân phối khoá. 
Một nhóm bất kỳ ng−ời sử dụng có thể thoả thuận cùng dùng 
chung một số nguyên tố lớn p và một phần tử nguyên thuỷ α theo 
modp , hai ng−ời bất kỳ trong nhóm A và B mỗi khi muốn truyền 
tin bảo mật cho nhau có thể cùng thực hiện giao thức say đây để 
trao đổi khoá: 
1. A chọn ngẫu nhiên số aA (0≤ aA≤ p -2), giữ bí mật aA, tính 
và gửi bmodAaAb α= p
p
p
i i i
A cho B. 
2. T−ơng tự, B chọn ngẫu nhiên số aB (0≤ aB ≤ p -2), giữ bí mật 
aB , tính và gửi bmodB
a
Bb α= B cho B. 
3. A và B cùng tính đ−ợc khoá chung 
 . , mod mod ( mod )A B A B
a a a a
A B B AK b p b p α= = =
 Giao thức trao đổi khoá Diffie-Hellman có các tính chất sau: 
1. G ao thức là an toàn đố với v ệc tấn công thụ động, nghĩa là 
một ng−ời thứ ba, dù biết bA và bB sẽ khó mà biết đ−ợc KA,B . 
Ta biết rằng bài toán “biết bA và bB tìm KA,B” chính là bài toán 
Diffie-Hellman, và trong mục 7.2.3 ta có nói rằng bài toán đó t−ơng 
 157 
đ−ơng với bài toán phá mật mã ElGamal. Bây giờ ta chứng minh 
điều này. Phép mật mã ElGamal với khoá K = (p,α,a ,β ), trong đó 
moda pβ α= , cho ta từ một bản rõ x và một số ngẫu nhiên 1pk Z −∈ 
lập đ−ợc mật mã 1 2( , ) ( , ),Ke x k y y= 
trong đó 1 2mod , mod .
k ky p y xα β= = p
Và phép giải mã đ−ợc cho bởi 
 11 2 2 1( , ) ( ) mod .
a
Kd y y y y p
−=
 Giả sử ta có thuật toán A giải bài toán Diffie-Hellman. Ta sẽ 
dùng A để phá mã ElGamal nh− sau: Cho mật mã . Tr−ớc 
hết, dùng A cho và 
1 2( , )y y
1 mod
ky pα= moda pβ α= , ta đ−ợc 
 A(y1,β) = mod ,ka k pα β= 
và sau đó ta thu đ−ợc bản rõ x từ βk và y2 nh− sau : 
 12 ( ) mod
k .x y pβ −= 
 Ng−ợc lại, giả sử có thuật toán B phá mã ElGamal, tức 
 B . 11 2 2 1( , , , , ) ( ) modap y y x y yα β −= = p
1áp dụng B cho 1 2, ,A Bb y b yβ = = = , ta đ−ợc 
 B 1 1 1( , , , ,1) (1.( ) ) mod ,A A Ba a aA B Bp b b b pα α− − −= =
tức là giải đ−ợc bài toán Diffie-Hellman. 
2. Giao thức là không an toàn đối với việc tấn công chủ động 
bằng cách đánh tráo giữa đ−ờng, nghĩa là một ng−ời thứ ba C có 
thể đánh tráo các thông tin trao đổi giữa A và B, chẳng hạn, C 
thay Aaα mà A định gửi cho B bởi Aaα ′ ,và thay Baα mà B định gửi cho 
A bởi Baα ′ , nh− vậy, sau khi thực hiện giao thức trao đổi khoá, A 
đã lập một khoá chung A Ba aα ′ với C mà vẫn t−ởng là với B, đồng thời 
B đã lập một khoá chung A Ba aα ′ với C mà vẫn t−ởng là với A; C có 
thể giải mã mọi thông báo mà A t−ởng nhầm là mình gửi đến B, 
cũng nh− mọi thông báo mà B t−ởng nhầm là mình gửi đến A ! 
Một cách khắc phục kiểu tấn công chủ động nói trên là làm 
sao để A và B có thể kiểm thử để xác nhận tính đúng đắn của các 
khoá công khai bA và bB .Đ−a vào giao thức trao đổi khoá Diffie-
Hellman thêm vai trò điều phối của một TA để đ−ợc một hệ phân 
phối khoá Diffie-Hellman nh− ở mục 7.2.3 là một cách khắc phục 
nh− vậy. Trong hệ phân phối khoá Diffie-Hellman, sự can thiệp của 
TA là rất yếu, thực ra TA chỉ làm mỗi một việc là cấp chứng chỉ xác 
nhận khoá công khai cho từng ng−ời dùng chứ không đòi hỏi biết 
thêm bất cứ một bí mật nào của ng−ời dùng. Tuy nhiên, nếu ch−a 
 158 
thoả mãn với vai trò hạn chế đó của TA, thì có thể cho TA một vai 
trò xác nhận yếu hơn, không liên quan gì đến khoá, chẳng hạn nh− 
xác nhận thuật toán kiểm thử chữ kỹ của ng−ời dùng, còn bản thân 
các thông tin về khoá (cả bí mật và công khai) thì do các ng−ời 
dùng trao đổi trực tiếp với nhau. Với cách khắc phục có vai trò rất 
hạn chế đó của TA, ta đ−ợc giao thức sau đây: 
7.3.2. Giao thức trao đổi khoá DH có chứng chỉ xác nhận. 
 Mỗi ng−ời dùng A có một danh tính ID(A) và một sơ đồ chữ 
ký với thuật toán ký sigA và thuật toán kiểm thử verA. TA cũng có 
một vai trò xác nhận, nh−ng không phải xác nhận bất kỳ thông tin 
nào liên quan đến việc tạo khoá mật mã của ng−ời dùng (dù là 
khoá bí mật hay là khoá công khai), mà chỉ là xác nhận một thông 
tin ít quan hệ khác nh− thuật toán kiểm thử chữ ký của ng−ời dùng. 
Còn bản thân các thông tin liên quan đến việc tạo khoá mật mã thì 
các ng−ời dùng sẽ trao đổi trực tiếp với nhau. TA cũng có một sơ 
đồ chữ ký của mình, gồm một thuật toán ký sigTA và một thuật toán 
kiểm thử (công khai) verTA. Chứng chỉ mà TA cấp cho mỗi ng−ời 
dùng A sẽ là 
 C(A) = (ID(A), verA , sigTA(ID(A), verA)). 
Rõ ràng trong chứng chỉ đó TA không xác nhận bất kỳ điều gì liên 
quan đến việc tạo khoá của A cả. Việc trao đổi khoá giữa hai ng−ời 
dùng A và B đ−ợc thực hiện theo giao thức sau đây: 
1.A chọn ngẫu nhiên số (0 2),A Aa a p≤ ≤ − tính 
và gửi b
mod ,AaAb pα=
A cho B. 
2. B chọn ngẫu nhiên số (0 2),B Ba a p≤ ≤ − tính 
tính tiếp 
mod ,BaBb pα=
mod ,BaAK b p= 
 ( , ),B B B Ay sig b b= 
và gửi (C(B),bB , yB) cho A. 
 3. A tính K = mod ,AaBb p
dùng verB để kiểm thử yB , dùng verTA để kiểm thử C(B), sau đó tính 
 yA = sigA(bA , bB ), 
và gửi (C(A), yA) cho B. 
 4.B dùng verA để kiểm thử yA ,và dùng verTA để kiểm thử C(A). 
 Nếu tất cả các b−ớc đó đ−ợc thực hiện và các phép kiểm thử 
đều cho kết quả đúng đắn, thì giao thức kết thúc, và cả A và B đều 
có đ−ợc khoá chung K . Do việc dùng các thuật toán kiểm thử nên 
A biết chắc giá trị bB là của B và B biết chắc giá trị bA là của A, loại 
 159 
trừ khả năng một ng−ời C nào khác đánh tráo các giá trị đó giữa 
đ−ờng. 
7.3.3. Giao thức trao đổi khoá Matsumoto-Takashima- 
Imai. 
 Giao thức trình bày trong mục trên cần dùng ba lần chuyển 
tin qua lại để thiết lập một khoá chung. Các tác giả Nhật 
Matsumoto, Takashima và Imai đề nghị một cải tiến để chỉ dùng 
một giao thức gồm hai lần chuyển tin (một từ A đến B và một từ B 
đến A) để thoả thuận khoá nh− sau: 
 Ta giả thử rằng tr−ớc khi thực hiện giao thức, TA đã ký cấp 
chứng chỉ cho mỗi ng−ời dùng A theo cách làm ở mục 7.2.3: 
 C(A) = (ID(A), Ab , sigTA(ID(A), Ab )), 
và thuật toán kiểm thử chữ ký verTA của TA là công khai. Trong 
giao thức này, các bA không trực tiếp tạo nên các khoá mật mã cho 
truyền tin, mà với mỗi phiên truyền tin bảo mật, khoá phiên (sesion 
key) sẽ đ−ợc tạo ra cho từng phiên theo giao thức. 
 Giao thức trao đổi khoá phiên MTI gồm ba b−ớc (trong đó có 
hai lần chuyển tin) nh− sau: 
1. A chọn ngẫu nhiên số (0 2),A Ar r p≤ ≤ − tính 
và gửi (C(A), s
mod ,ArAs pα=
A ) cho B. 
2. B chọn ngẫu nhiên số (0 2),B Br r p≤ ≤ − tính mod ,BrBs pα=
và gửi (C(B),sB ) cho A. 
 3. A tính . modA Aa rB B ,K s b p= với giá trị bB thu đ−ợc từ C(B), 
 B tính . modB Ba rA A ,K s b p= với giá trị bA thu đ−ợc từ C(A). 
Hai cách tính đó đều cho cùng một giá trị mod .A B B Ar a r aK pα +=
Giao thức này cũng có khả năng giữ bí mật khoá K nh− đối với 
giao thức Diffie-Hellman tr−ớc sự tấn công thụ động. Tuy nhiên, vì 
không có chứng chỉ đối với các giá trị sA , sB nên vẫn có nguy cơ của 
sự tấn công tích cực bằng việc đánh tráo giữa đ−ờng bởi một C nào 
đó theo kiểu sau đây: 
 C(A), Arα C(A), Arα ′ 
A C(B), Brα ′ C C(B), Brα B 
Đáng lẽ A gửi đến B (C(A),sA) thì C đánh tráo bằng cách nhận 
(C(A),sA) và gửi đến B ( ( ), ),AC A s′ với , và ng−ợc lại, modArAs α ′′ = p
 160 
đáng lẽ B gửi đến A (C(B), sB) thì C đánh tráo bằng cách nhận (C(B), 
sB) và gửi đến A ( ( ), )BC B s′ , với . Khi đó, A tính đ−ợc 
khoá 
modBrBs α ′′ = p
 1 modA B B A
r a r aK pα ′+= , 
và B tính đ−ợc khoá 
 2 mod .A B B A
r a r aK pα ′ += 
Hai giá trị K1 và K2 này khác nhau, nên không giúp A và B truyền 
tin đ−ợc cho nhau, nh−ng C không có khả năng tính đ−ợc giá trị 
nào trong hai giá trị đó (vì không biết aA và aB ), nên khác với giao 
thức Diffie-Hellman ở mục 7.2.3, ở đây C chỉ có thể phá rối, chứ 
không thể đánh cắp thông tin đ−ợc. 
7.3.4. Giao thức Girault trao đổi khoá không chứng chỉ. 
 Giao thức Girault đ−ợc đề xuất năm 1991. Trong giao thức 
này, ng−ời sử dụng A không cần dùng chứng chỉ C(A), mà thay 
bằng một khoá công khai tự chứng thực , đ−ợc cấp tr−ớc bởi một 
TA. Ph−ơng pháp này sử dụng kết hợp các đặc tính của các bài 
toán RSA và lôgarit rời rạc. 
 Giả thử n là tíc của hai số nguyên tố lớn p và q, n =p.q , p và 
q có dạng p =2p1+1, q =2q1+1, trong đó p1 và q1 cũng là các số 
nguyên tố. Nhóm nhân nZ
∗ đẳng cấu với tích p qZ Z
∗ ∗ì . Cấp cao nhất 
của một phần tử trong nZ
∗ là bội chung bé nhất của p -1 và q -1, tức 
là bằng 2p1q1. Giả sử α là một phần tử cấp 2p1q1 của nZ ∗ . Nhóm 
cyclic sinh bởi α đ−ợc ký hiệu là G, bài toán tính lôgarit rời rạc theo 
cơ số α trong G đ−ợc giả thiết là rất khó. 
 Các số n và α là công khai. Chỉ TA biết p ,q . TA chọn số mũ 
công khai e , với gcd(e, φ (n ))=1,và giữ bí mật d =e -1modφ (n ). 
 Mỗi ng−ời dùng A có một danh tính ID(A), chọn ngẫu nhiên 
một số aA ∈ G, giữ bí mật aA và tính bA= , rồi gửi amodAa nα A ,bA cho 
TA. TA thử lại điều kiện bA= , rồi cấp cho A một khoá 
công khai tự chứng thực p
modAa nα
A = (bA- ID(A))d modn . Trong khoá công 
khai pA không có thông tin về aA , nh−ng TA cần biết aA để thử điều 
kiện bA= . modAa nα
 Giao thức Girault trao đổi khoá giữa hai ng−ời dùng A và B 
đ−ợc thực hiện bởi các b−ớc sau đây: 
1. A chọn ngẫu nhiên rA∈G, tính và gửi cho B 
(ID(A),p
mod ,ArAs α= n
A , sA). 
 161 
2. B chọn ngẫu nhiên rB ∈G , tính và gửi cho A 
(ID(B), p
mod ,BrBs α= n
d ,
B , sB). 
 3. A tính khoá ( ( )) moA Aa reB BK s p ID V n= + 
 B tính khoá ( ( )) moB Ba reA A d .K s p ID A n= + 
Cả hai giá trị đó của K đều bằng nhau và bằng 
 mod .A B B Ar a r aK nα += 
 Bằng các lập luận nh− trong mục tr−ớc, ta dễ thấy rằng một 
ng−ời thứ ba C khó mà tạo ra các thông tin giả mạo để gửi đến A 
hoặc B, nếu tấn công bằng cách đánh tráo giữa đ−ờng thì có thể phá 
rối để ngăn cản A và B tạo lập khoá chung, nh−ng không thể đánh 
cắp thông tin trao đổi giữa A và B. 
Còn lại một vấn đề: Tại sao TA cần biết aA và thử điều kiện 
bA= tr−ớc khi cấp pmodAa nα A cho A? Ta giả thử rằng TA không 
biết aA và cấp pA= (bA- ID(A))d modn cho A, và thử xem có thể xẩy 
ra chuyện gì? 
 Một ng−ời thứ ba C có thể chọn một giá trị rởm ,Aa′ và tính 
 rồi tính b bmod ,AaAb α ′′ = n ID A ID C( ) ( ),C A′ ′= − − )và đ−a ( ( ), CID C b′ 
cho TA. TA sẽ cấp cho C một “khoá công khai tự chứng thực” 
 ( ( )) modC Cp b ID C′ ′= − d .n
d .n
Vì nên thực tế C đã đ−ợc cấp ( ) ( ),C Ab ID C b ID A′ ′− = −
 ( ( )) modC A Ap p b ID A′ ′ ′= = −
Bây giờ giả sử A và B thực hiện giao thức trao đổi khoá, và C xen 
vào ở giữa, nh− vậy, A gửi đến B ( ( ), , mod ),ArAID A p nα nh−ng do bị 
C đánh tráo nên B lại nhận đ−ợc ( ( ), , mod ),ArAID A p nα ′′ do đó B và C 
tính đ−ợc cùng một khoá 
 mod ( ( )) mod ,A B B A A Ar a r a a reB BK n s p ID B nα ′ ′ ′ ′+′ = = + 
còn A tính đ−ợc khoá 
 mod .A B B Ar a r aK nα += 
 ID(A), pA, Arα ID(A), Ap′ , Arα ′ 
A ID(B),pB , Brα C ID(B),pB, Brα B 
B và C có cùng một khoá khác với khoá của A, nh−ng B vẫn 
nghĩ rằng mình có chung khoá với A. Vì thế, C có thể giải mã mọi 
thông báo mà B gửi cho A, tức đánh cắp các thông tin từ B đến A. 
Việc TA biết aA và thử điều kiện bA= tr−ớc khi cấp pmodAa nα A cho 
A là để loại trừ khả năng đánh tráo nh− vậy của một kẻ tấn công C. 
 162 
Chú dẫn về sách tham khảo 
 Sách báo về Khoa học mật mã tuy mới đ−ợc công khai xuất 
bản từ khoảng ba thập niên gần đây, nh−ng do nhu cầu nghiên cứu 
và ứng dụng rất lớn nên đã phát triển rất nhanh chóng, trong đó có 
cả những tài liệu giáo khoa do các tr−ờng Đại học xuất bản cũng 
nh− công trình nghiên cứu đăng tải trên các tạp chí khoa học và các 
tập công trình của các hội nghị khoa học quốc tế hàng năm về Mật 
mã. Đó là nguồn tài liệu hết sức phong phú và quí giá cho tất cả 
những ai quan tâm đến việc học tập và nghiên cứu về khoa học mật 
mã. Tập giáo trình này đ−ợc biên soạn chủ yếu dựa vào một số 
sách chuyên khảo đã trở thành giáo khoa cho nhiều tr−ờng Đại học 
trên thế giới, đ−ợc xuất bản trong những năm gần đây: 
1. Douglas R. Stinson. Cryptography. Theory and Practice, CRC 
Press,1995. 
2.A.J. Menezes, P.C. van Oorschot, S.A. Vanstone. Handbook of 
Applied Cryptography, CRC Press, 1997. 
3.Bruce Schneier. Applied Cryptography. Protocols, Algorithms 
and Source Code in C. John Wiley &Son,Inc, 1996. 
4. S. Goldwasser, M. Bellare. Lecture Notes on Cryptography. MIT 
Laboratory of Computer Science, 2001. 
5.J.Seberry, J. Pieprzyk. Cryptography. An introduction to 
Computer Security. Prentice Hall, 1989. 
6.Vitor Shoup. A computational Introduction to Number Theory 
and Algebra, New York University, 2003. 
 163 

File đính kèm:

  • pdfgiao_trinh_ly_thuyet_mat_ma_va_an_toan_thong_tin_phan_dinh_d.pdf