Giao thức trao đổi khoá Matsumoto-Takashima Imaị

Một phần của tài liệu Giáo trình lý thuyết mật mã và an toàn thông tin phần 2 phan đình diệu (Trang 70)

, aA mo da a BA mod

7.3.3.Giao thức trao đổi khoá Matsumoto-Takashima Imaị

Imaị

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 khaị 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 Ạ 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.

Một phần của tài liệu Giáo trình lý thuyết mật mã và an toàn thông tin phần 2 phan đình diệu (Trang 70)