Trao đổi khoá và thoả thuận khoá

Một phần của tài liệu Tài liệu Lý thuyết mật mã và An toàn thông tin pptx (Trang 162 - 168)

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 b mod A a A bp 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 aB mod và gửi b

B

b =α B cho B.

3. A và B cùng tính đ−ợc khoá chung

, aAmod aB mod ( a aA Bmod ).

A B B A

K =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

đ−ơ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 đó

mod

a

p

β α= , cho ta từ một bản rõ x và một số ngẫu nhiên kZp−1

lập đ−ợc mật mã eK( , )x k =( ,y y1 2),

trong đó y1=αkmod ,p y2 =xβkmod .p

Và phép giải mã đ−ợc cho bởi

1

1 2 2 1

( , ) ( a) mod .

K

d y y = y yp

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 kmod yp β α= amodp, ta đ−ợc A(y1,β) = αkakmod ,p

và sau đó ta thu đ−ợc bản rõ x từ βkvà y2 nh− sau :

1

2( k) mod .

x= y β − p

Ng−ợc lại, giả sử có thuật toán B phá mã ElGamal, tức

B 1 . 1 2 2 1 ( , , ,pα β y y, )= =x y y( a) mod− p 1 áp dụng B cho β =bA,y1=bB,y2 = , ta đ−ợc B 1 1 1 ( , , , ,1) (1.( aA) ) a aA B mod , A B B pα 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αaAmà A định gửi cho B bởi αaA′ ,và thayαaBmà B định gửi cho A bởi αaB′ , nh− vậy, sau khi thực hiện giao thức trao đổi khoá, A đã lập một khoá chung αa aA B′ với C mà vẫn t−ởng là với B, đồng thời B đã lập một khoá chung αa aA B′ 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

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ố aA(0≤aA ≤ −p 2),tính và gửi b mod , A a A bp A cho B. 2. B chọn ngẫu nhiên số aB(0≤aB ≤ −p 2),tính tính tiếp mod , B a B bp mod , B a A K =b p yB =sig b bB( B, A), và gửi (C(B),bB , yB) cho A. 3. A tính K = aAmod , B b 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

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),bA, sigTA(ID(A),bA)),

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ố rA(0≤rA ≤ −p 2),tính và gửi (C(A), s mod , A r A sp A ) cho B.

2. B chọn ngẫu nhiên số rB(0≤rB ≤ −p 2),tính rBmod ,

B

sp

và gửi (C(B),sB ) cho A. 3. A tính aA. rAmod

B B ,

K=s b p với giá trị bB thu đ−ợc từ C(B), B tính aB. rB mod

A 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ị r aA B r aB Amod .

K =α + 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), αrA C(A),αrA

A C(B), αrB′ C C(B), αrB 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 ( ( ),C A sA′),với rAmod , và ng−ợc lại,

A

đá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 ( ( ),C B sB′), với . Khi đó, A tính đ−ợc khoá mod B r B s′ =α ′ p 1 r aA B r aB Amod K =α +′ p, và B tính đ−ợc khoá 2 r aA B r aB Amod . K =α ′ + 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 Zn∗ đẳng cấu với tích Zp∗ìZq∗. Cấp cao nhất của một phần tử trong Zn∗ 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 Zn∗. 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= aAmod , rồi gửi a

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 mod

A

a

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= aAmod .

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 , A r A sn A , sA).

2. B chọn ngẫu nhiên rB∈G , tính và gửi cho A (ID(B), p mod , B r B sn d , B , sB). 3. A tính khoá aA( e ( )) morA B B K =s p +ID V n B tính khoá aB( e ( )) morB A A d . K =s p +ID A n

Cả hai giá trị đó của K đều bằng nhau và bằng r aA B r aB Amod .

K =α + 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= aAmod tr−ớc khi cấp p

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 b mod , A a A b′ =α ′ n C′ = A′ −ID A( )−ID C( ),và đ−a (ID C b( ), C′) cho TA. TA sẽ cấp cho C một “khoá công khai tự chứng thực”

( ( )) mod C C p′ = b′ −ID C d .n d .nbC′ −ID C( )=bA′ −ID A( ),nên thực tế C đã đ−ợc cấp ( ( )) mod C A A p′ = 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 ( ( ), , rAmod ),

A

ID A p α n nh−ng do bị C đánh tráo nên B lại nhận đ−ợc ( ( ), , rAmod ),

A ID A p′ α ′ n do đó B và C tính đ−ợc cùng một khoá mod ( ( )) mod , A B B A A A r a r a a e r B B K′ =α ′ + ′ n=sp +ID Bn còn A tính đ−ợc khoá mod . A B B A r a r a K =α + n ID(A), pA,αrA ID(A), pArA′ A ID(B),pB ,αrB C ID(B),pB,αrB 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= aAmod tr−ớc khi cấp p

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.

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.

Một phần của tài liệu Tài liệu Lý thuyết mật mã và An toàn thông tin pptx (Trang 162 - 168)

Tải bản đầy đủ (PDF)

(168 trang)